我对csproj文件有疑问。
由于我有一个很大的源代码库,我正在努力减少项目文件中的冲突(与团队一起开发时)。
我设法通过使用这样的标签摆脱了大多数碰撞:
<Compile Include="Services\**\*.cs" />
用于普通的cs文件和
<Page Include="Entities\**\*.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
用于xaml和codebehind。
不幸的是,我放弃了.xaml和.xaml.cs对的分组,这是可以忍受的但是很笨拙。
有没有办法为这些创建通用模式?
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
我知道分裂csproj本身的可能性,但这会禁止解决方案范围内的搜索,所以这是禁止的
答案 0 :(得分:3)
使用MSBuild 15的静态更新语法,您可以
<Compile Update="**\*.xaml.cs" DependentUpon="%(Filename)" />
这里的诀窍是MSbuild将路径分为Filename
(foo.xaml.cs
=&gt; foo.xaml
)和Extension
(foo.xaml.cs
=&gt; {{ 1}}),因此.cs
可用于引用xaml文件。
答案 1 :(得分:0)
因为我有一个很大的生成源基础
您是否也无法生成或至少更新csproj
文件?
这就是我为99%生成的程序集所做的事情。我将所有手动工作放在一个单独的文件夹中,该文件夹在生成器中枚举,并添加到生成项目旁边的项目文件中。