Существует ли макрос или механизм для получения версии проекта в MSBuild
Ответ - да.Если вы не против редактировать файл проекта Visual Studio, то существует простое решение, которое позволяет вам использовать макрос, который выглядит следующим образом: @(VersionNumber)
:
. Для этого выгрузите ваш проект.Затем в самом конце проекта, перед конечным тегом, поместите ниже сценарии:
Есть ли способ сделать это?
Ответ - да.Если вы не против редактировать файл проекта Visual Studio, то существует простое решение, которое позволяет вам использовать макрос, который выглядит следующим образом: @ (VersionNumber):
Для этого выгрузите ваш проект.Затем в самом конце проекта, непосредственно перед конечным тегом, поместите ниже сценарии:
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
PostBuildMacros;
</PostBuildEventDependsOn>
</PropertyGroup>
<Target Name="PostBuildMacros">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="Targets" />
</GetAssemblyIdentity>
<ItemGroup>
<VersionNumber Include="@(Targets->'%(Version)')"/>
</ItemGroup>
</Target>
Теперь, как и было обещано, версия сборки доступна для вашего события после сборки с этим макросом.Таким образом, мы могли бы получить это командой в событии сборки:
echo @(VersionNumber)
И мы могли бы записать это в файл bat с помощью командной строки:
echo @(VersionNumber) > $(TargetDir)install.bat
Надеюсь, это поможет.