Как передать версию сборки проекта Visual Studio другому проекту для использования в событии после сборки?
У меня есть решение с 2 проектами:
- Мое приложение 1.2.54 (C# WinForms)
- My Application Setup 1.0.0.0 (настройка WiX)
Я хотел бы добавить событие после сборки в проект установки WiX, чтобы запустить пакетный файл и передать ему параметр командной строки номера версии сборки Моего приложения. Код может выглядеть примерно так:
CALL MyBatchFile.bat "$(fileVersion.ProductVersion($(var.My Application.TargetPath)))"
Но это приводит к следующей ошибке:
Необработанное исключение: выражение "" ". Моё приложение" не может быть оценено. Метод '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 ответ
В вашем файле проекта 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>