Visual Studio F#项目:文件树中的两个文件夹不能同名吗?

Mil*_*oDC 14 f# project visual-studio-2013

在Visual Studio 2013中,我的一个项目包括:

<ItemGroup>
    <Compile Include="Entity\Abstract\Entity.fs" />
    <Compile Include="Entity\HumanEntity.fs" />
    <Compile Include="State\Abstract\State.fs" />
    <Compile Include="State\Abstract\HumanState.fs" />
    <Compile Include="State\Human\HumanIdleState.fs" />
    <Compile Include="State\Human\HumanAwakenState.fs" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

Visual Studio对此嗤之以鼻,声称:

The project 'Entity.fsproj' could not be opened because opening it would cause a folder to be rendered multiple times in the solution explorer. One such problematic item is 'State\Abstract\State.fs'.

如果我像这样更改包含,一切都很好:

<ItemGroup>
    <Compile Include="Entity\AbstractEntity\Entity.fs" />
    <Compile Include="Entity\HumanEntity.fs" />
    <Compile Include="State\AbstractState\State.fs" />
    <Compile Include="State\AbstractState\HumanState.fs" />
    <Compile Include="State\Human\HumanIdleState.fs" />
    <Compile Include="State\Human\HumanAwakenState.fs" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

这是VS2013的疏忽,还是我做错了什么?

pad*_*pad 10

不幸的是,它是Visual Studio中F#项目系统的限制.可以在本文中找到更详细的分析.

在即将支持Visual F#Power Tools中的文件夹组织中,我们必须添加验证以防止用户使用菜单项在项目中添加具有重复名称的文件夹(请参阅代码相关讨论).当然,我们无法通过编辑fsproj文件来阻止用户这样做.

也许您可以在microsoft dot com上向fsbugs发送建议,以便可以在即将推出的Visual F#Tools版本中修复它.

  • 糟透了.谢谢. (5认同)