Есть ли макрос или механизм для получения версии проекта в MSBuild - PullRequest
0 голосов
/ 01 июня 2018

Мне нужно вызвать файл .bat, чтобы получить какую-то пользовательскую упаковку для вывода моего проекта.Есть ли какой-то способ встроенного механизма для получения версии в виде строки, такой, чтобы я мог передать ее в качестве аргумента моему файлу bat?

Я вижу, что существует файл assemblyInfo.cs для сборок версий, нокак я могу получить эту информацию в процессе сборки?

1 Ответ

0 голосов
/ 02 июня 2018

Существует ли макрос или механизм для получения версии проекта в 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

Надеюсь, это поможет.

...