【发布时间】:2017-03-23 15:31:47
【问题描述】:
在 .csproj 文件中,Visual Studio 和 Xamarin Studio 默认保留对项目中使用的每个文件的引用。
<ItemGroup>
<Compile Include="Utils\Foo1Utils.cs" />
<Compile Include="Utils\Foo2Utils.cs" />
<Compile Include="Services\FooService.cs" />
...
</ItemGroup>
为了避免每次添加文件时我们的解决方案中的 csproj 文件发生冲突,我们开始使用通配符:
<ItemGroup>
<Compile Include="Utils\*.cs" />
<Compile Include="Services\*.cs" />
...
</ItemGroup>
问题在于,显然在 Visual Studio 和 Xamarin Studio 上都无法向 IDE “解释”我们正在使用通配符,并且当我们向项目添加新文件时,它们会添加对文件的新引用而忽略文件夹上的通配符*.cs。这仍然是一个很好的解决方案,因为我们不需要在每次添加文件时提交我们的 .csproj,但现在我们必须每次都重置它们......谁知道是否有解决方案?
编辑:使用 Rider (JetBrains) 没有这个问题,如果在 csproj 中有一个通配符并且我添加了一个新文件,一切正常。
【问题讨论】:
-
Utils 或 Services 文件夹中是否有添加了新文件的子文件夹?
-
@Poosh 有时我有子文件夹,但根据我的经验,这并没有什么区别。我很少改变我的文件夹结构,所以通常我只写“Utils\*.cls”和“Utils\Subutils\*.cs”,只是为了有一点控制权。
-
在 Visual Studio 中,如果您尝试将新类添加到使用通配符在 csproj 文件中引用的文件夹之一,然后退出 Visual Studio,是否会提示您保存对解决方案的更改/项目?
-
我通常使用 Xamarin Studio,而我的一位同事使用 Visual Studio,我们俩都有同样的问题:如果我们在已经被通配符“覆盖”的文件夹中添加文件,ide 添加文件在 csproj 中,我们必须丢弃修改。
标签: c# visual-studio csproj