Для нашего веб-проекта мне требуется сборочная версия проекта для версии нашего статического содержимого.
Я объявил цель в файле веб-проекта, чтобы получить идентификатор сборки и получить из нее номер версии, например:
<PropertyGroup>
<IvanhoWebVersion>
</IvanhoWebVersion>
</PropertyGroup>
<Target Name="SetIvanhoWebVersion" AfterTargets="AfterBuild">
<Message Text="-----------------">
</Message>
<Message Text="Entering target SetIvanhoWebVersion">
</Message>
<Message Text="-----------------">
</Message>
<GetAssemblyIdentity AssemblyFiles="$(OutputPath)$(AssemblyName).dll">
<Output TaskParameter="Assemblies" ItemName="AssemblyIdentities" />
</GetAssemblyIdentity>
<CreateProperty value="%(AssemblyIdentities.Version)">
<Output TaskParameter="Value" PropertyName="IvanhoWebVersion" />
</CreateProperty>
<Message Text="Assembly version = v$(IvanhoWebVersion)">
</Message>
<Exec Command=" "$(SolutionDir)Ivanho.Lib\TranslationGenerator\TranslationGenerator.exe" "$(ProjectDir)Areas\UI\Static\locales\translationsrc\Translations-EN-NL-AR.xlsx" "$(ProjectDir)Areas\UI\Static\locales\v.$(IvanhoWebVersion)"" />
</Target>
Это работает как шарм при локальной сборке, однако при попытке зарегистрировать это на нашем сервере сборки TFS происходит сбой со следующей ошибкой:
Не удается получить имя сборки для "bin\Ivanho.Web.dll". Не удалось загрузить файл или сборку Ivanho.Web.dll или одну из ее зависимостей. Система не может найти указанный путь.
Эта ошибка возникает в той же строке вызова GetAssemblyIdentity
.
Я не могу понять, почему это не работает на сервере сборки, я новичок в MSBuild, может кто-нибудь указать мне правильное направление? Спасибо заранее!