我想用以下内容扩展此主题/答案。就像有人提到的那样,此自动生成的AssemblyInfo可能成为外部工具的障碍。就我而言,使用FinalBuilder时,我遇到一个问题,即AssemblyInfo无法通过构建操作进行更新。显然,FinalBuilder依靠~proj
文件来找到AssemblyInfo的位置。我以为,它在项目文件夹下的任何位置。不,所以,改变这个
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
仅完成了一半的工作,如果由VS IDE / MS Build构建,则允许自定义程序集信息。但是我也需要FinalBuilder做到这一点,而无需手动操作程序集信息文件。我需要满足所有程序,MSBuild / VS和FinalBuilder。
我通过在现有条目中添加一个条目来解决此问题 ItemGroup
<ItemGroup>
<Compile Remove="Common\**" />
<Content Remove="Common\**" />
<EmbeddedResource Remove="Common\**" />
<None Remove="Common\**" />
<!-- new added item -->
<None Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
现在,有了此项,FinalBuilder会找到AssemblyInfo的位置并修改文件。虽然操作None
允许MSBuild / DevEnv忽略此条目,并且不再根据文件中的“ Compile
程序集信息”条目通常附带的操作来报告错误proj
。
C:\ Program Files \ dotnet \ sdk \ 2.0.2 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.DefaultItems.targets(263,5):错误:包含重复的“编译”项。默认情况下,.NET SDK包含项目目录中的“编译”项。您可以从项目文件中删除这些项目,也可以将“ EnableDefaultCompileItems”属性设置为“ false”(如果要在项目文件中明确包含它们)。有关更多信息,请参见https://aka.ms/sdkimplicititems。重复的项目是:“ AssemblyInfo.cs”