对于我工作过的大多数视觉工作室项目,我最终遇到了合并冲突,因为visual studio csproj文件包含大量用于包含文件的行,最后两个提交添加了一行到了同一个地方。 csproj文件。
<Content Include="Views\View1.cshtml" />
<Content Include="Views\Shared\View2.cshtml" />
<!-- snip a hundred more views -->
我们还使用Web部署包,并且在某些时候总是遇到有人将.css文件添加到文件系统,但忘记将其作为visual studio项目的一部分包含在内。这导致它不在部署包中,也从未部署到测试站点。
我最近发现可以做包含所有文件和子目录的通配符包括这样的内容。
<Content Include="Views\**" />
<Content Include="Styles\**" />
这有什么缺点吗?似乎它将解决合并问题和忘记在项目问题中包含文件。
答案 0 :(得分:1)
潜在的缺点是在该子目录中包含不应包含的潜在敏感文件,或包括开发人员随机放入她的Views
或Styles
文件夹中用于测试目的的其他文件,但从不预计实际上将它包括在项目中。当然,开发人员可能在物理文件夹位置但实际上并不想将其包含在项目中的其他临时代码文件也是如此。
为避免这种情况,您应该考虑以下语法:
<Content Include="Views\**\*.cshtml" />
<Content Include="Shared\**\*.cshtml" />
<Content Include="Shared\**\*.css" />
这将包括任何子目录中的所有文件。如果您实际上只想将这些文件包含在该目录中,请尝试
<Content Include="Views\*.cshtml" />
<Content Include="Shared\*.cshtml" />
<Content Include="Shared\*.css" />
等,只绘制真正应该在文件中的文件类型(并且仅在该子目录中)。如果您知道不想在该子目录中包含特定文件,也可以使用Exclude
属性。
有关更多信息,请参阅: https://msdn.microsoft.com/en-us/library/ms171453.aspx#BKMK_Wildcards
还会想到其他一些建议: