我想用以下内容扩展此主题/答案。就像有人提到的那样,此自动生成的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”