Как передать версию сборки проекта Visual Studio другому проекту для использования в событии после сборки? - PullRequest
1 голос
/ 11 июня 2010

У меня есть решение с 2 проектами:

  • My Application 1.2.54 (C # WinForms)
  • My Application Setup 1.0.0.0 (Настройка WiX)

Я хотел бы добавить событие пост-сборки в проект установки WiX, чтобы запустить пакетный файл и передать ему параметр командной строки номера версии сборки Моего приложения.Код может выглядеть примерно так:

CALL MyBatchFile.bat "$(fileVersion.ProductVersion($(var.My Application.TargetPath)))"

Но это приводит к следующей ошибке:

Необработанное исключение: выражение "" ".My Application" не может быть оценено.Метод 'System.String.My Application' не найден.C: \ My Application \ My Application Setup \ My Application Setup.wixproj

Ошибка: выражение "" ".My Application" не может быть оценено.Метод 'System.String.My Application' не найден.C: \ My Application \ My Application Setup \ My Application Setup.wixproj

Я бы хотел как-нибудь передать "1.2.54" в MyBatchFile.bat.

1 Ответ

2 голосов
/ 11 июня 2010

В вашем файле проекта Wix (*.wixproj) переопределите цель AfterBuild для вызова вашего пакетного файла:

<Target Name="AfterBuild">
  <!-- Get "My Application" assembly version -->
  <GetAssemblyIdentity AssemblyFiles="../my_assembly_dir/MyAssembly.dll">
    <Output TaskParameter="Assemblies" ItemName="AssemblyIdentity"/>
  </GetAssemblyIdentity>

  <Exec Command="MyBatchFile.bat %(AssemblyIdentity.Version)"/>
</Target>
...