我有一个包含2个项目的解决方案:
我想在WiX安装项目中添加一个生成后事件来运行批处理文件,并向其传递My Application的程序集版本号的命令行参数。代码可能如下所示:
CALL MyBatchFile.bat "$(fileVersion.ProductVersion($(var.My Application.TargetPath)))"
但是这会导致以下错误:
未处理的异常:表达式 “”我的申请“不可能 评估。方法'System.String.My 应用程序未找到。 C:\我的 Application \ My Application Setup \ My 应用程序Setup.wixproj
错误:表达式“”“。我 申请“无法评估。 方法'System.String.My Application' 未找到。 C:\我的应用程序\我的 Application Setup \ My Application Setup.wixproj
我希望能够以某种方式将“1.2.54”传递给MyBatchFile.bat。
答案 0 :(得分:2)
在您的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>