Использование AssemblyInfo для автоматического обновления нескольких файлов AssemblyInfo.cs

StackOverflow https://stackoverflow.com/questions/116140

Вопрос

У меня есть несколько файлов AssemblyInfo.cs как часть многих проектов в одном решении, которое я создаю автоматически как часть TeamCity.

Чтобы сделать сценарий msbuild более удобным в обслуживании, я хотел бы иметь возможность использовать задачу сообщества AssemblyInfo в сочетании с ItemGroup, например.

<ItemGroup>
     <AllAssemblyInfos Include="..\**\AssemblyInfo.cs" />
</ItemGroup>

<AssemblyInfo AssemblyTitle="" AssemblyProduct="$(Product)" AssemblyCompany="$(Company)" AssemblyCopyright="$(Copyright)" 
                  ComVisible="false" CLSCompliant="false" CodeLanguage="CS" AssemblyDescription="$(Revision)$(BranchName)" 
                  AssemblyVersion="$(FullVersion)" AssemblyFileVersion="$(FullVersion)" OutputFile="@(AllAssemblyInfos)" />

Это явно не работает, потому что OutputFile не может быть ссылочной ItemGroup.

Кто-нибудь знает, как заставить это работать?

Это было полезно?

Решение

Попробуйте изменить @ на %, как показано ниже.

<ItemGroup>
 <AllAssemblyInfos Include="..\**\AssemblyInfo.cs" />
</ItemGroup>

<AssemblyInfo AssemblyTitle="" AssemblyProduct="$(Product)" AssemblyCompany="$(Company)" AssemblyCopyright="$(Copyright)" 
                              ComVisible="false" CLSCompliant="false" CodeLanguage="CS" AssemblyDescription="$(Revision)$(BranchName)" 
                              AssemblyVersion="$(FullVersion)" AssemblyFileVersion="$(FullVersion)" OutputFile="%(AllAssemblyInfos)" />

При этом создается вызов для каждой записи в AllAssemblyInfos.

Посмотрите и эту статью, должно помочь.

http://blogs.msdn.com/aaronhallberg/archive/2006/09/05/msbuild-batching-generating-a-cross-product.aspx

Другие советы

Мы используем «связанные» файлы в проекте.Обозреватель решений -> Добавить существующий элемент -> ..выберите файл ..-> стрелка_on_left_of_add_button -> Добавить как ссылку

Тогда выбранный файл (на данный момент AssemblyInfo.cs) не копируется в каталог проекта, а связывается только с указанным путем.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top