Применение эффекта MSBuild к нескольким проектам в решении

У меня работает функция 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>

person SteveC    schedule 08.06.2014    source источник


Ответы (1)


Вы можете создать общий файл сборки для всех проектов и отредактировать файлы csproj, чтобы они ссылались на общий файл информации о сборке, например:

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

Дополнительную информацию можно найти по адресу Shared AssemblyInfo для единообразного управления версиями в решении

person Mohammad Nadeem    schedule 09.06.2014