在解决方案中的多个项目中应用MSBuild效果

时间:2014-06-08 18:17:53

标签: msbuild msbuildextensionpack

我已经获得了MSBuild扩展包的AssemblyInfo功能,因此我的程序集描述和文件版本在下面的代码中包含了我想要的详细信息...

但我希望在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>

1 个答案:

答案 0 :(得分:0)

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

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

可在Shared AssemblyInfo for uniform versioning across the solution

找到更多信息