0

我已经AssemblyInfo使 MSBuild 扩展包的功能正常工作,因此我的程序集描述和文件版本在下面的代码中具有我想要的详细信息...

但我想将此效果应用于 50 多个项目解决方案中的每个项目!

那么我怎样才能在所有项目上工作......而不通过每个项目添加代码?

<PropertyGroup>
  <CoreCompileDependsOn>
    $(CoreCompileDependsOn);
    AssemblyDefaults;
  </CoreCompileDependsOn>
</PropertyGroup>
<PropertyGroup>
 <ExtensionTasksPath>
 $(MSBuildProjectDirectory)\..\packages\MSBuild.Extension.Pack.1.4.0\tools\net40\
 </ExtensionTasksPath>
</PropertyGroup>
<Import Project="$(ExtensionTasksPath)\MSBuild.ExtensionPack.tasks" />
<Target Name="AssemblyDefaults">
  <ItemGroup>
    <AssemblyInfoFiles Include=".\Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <AssemblyInfo 
    AssemblyInfoFiles="@(AssemblyInfoFiles)" 
    AssemblyProduct="Compiled on: $([System.Environment]::MachineName)" 
    AssemblyDescription="Compiled at: $([System.DateTime]::Now)" 
    AssemblyFileBuildNumberType="DateString" 
    AssemblyFileBuildNumberFormat="MMdd" 
    AssemblyFileRevisionType="DateString" 
    AssemblyFileRevisionFormat="HHmm" />
</Target>
4

1 回答 1

0

您可以为所有项目创建一个通用程序集文件并编辑 csproj 文件以引用通用程序集信息文件,例如:

<Compile Include="..\CommonAssemblyInfo.cs">
  <Link>Properties\CommonAssemblyInfo.cs</Link>
</Compile>

更多信息可以在Shared AssemblyInfo 中找到,以便在整个解决方案中统一版本控制

于 2014-06-09T09:56:48.860 回答