Применить эффект 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>
1 ответ
Вы можете создать общий файл сборки для всех проектов и отредактировать файлы csproj, чтобы они ссылались на общий файл информации о сборке, например:
<Compile Include="..\CommonAssemblyInfo.cs">
<Link>Properties\CommonAssemblyInfo.cs</Link>
</Compile>
Дополнительную информацию можно найти в Shared AssemblyInfo для единообразного управления версиями в рамках решения.