1

我有两个项目的解决方案:

  • 我的应用程序 1.2.54 (C# WinForms)
  • 我的应用程序设置 1.0.0.0(WiX 设置)

我想将构建后事件添加到 WiX 设置项目以运行批处理文件并将我的应用程序的程序集版本号的命令行参数传递给它。代码可能如下所示:

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

但这会导致以下错误:

未处理的异常:无法评估表达式 """.My Application"。找不到方法“System.String.My Application”。C:\我的应用程序\我的应用程序设置\我的应用程序 Setup.wixproj

错误:无法评估表达式“”“.My Application”。找不到方法“System.String.My Application”。C:\我的应用程序\我的应用程序设置\我的应用程序 Setup.wixproj

我希望能够以某种方式将“1.2.54”传递给 MyBatchFile.bat。

4

1 回答 1

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>
于 2010-06-11T06:29:46.360 回答