【问题标题】:Building wix in Visual Studio vs MSBuild - cannot find file在 Visual Studio 与 MSBuild 中构建 wix - 找不到文件
【发布时间】:2016-06-30 11:14:14
【问题描述】:

我有一个 wix 项目。当我从 VS 构建它时,它构建完美。 在 wix 项目中,我使用了设置所需的组件 dll,它的路径是 Source=".​​...\Debug\MyDll.dll"

但是,当我尝试使用构建机器编译它时,它会失败并显示错误“系统找不到文件”,因为该文件被放置到另一个位置(进入“bin”文件夹)。

我希望能够使用 VS(在开发机器上)和在构建机器中进行构建。我该如何解决这种差异?

【问题讨论】:

    标签: msbuild wix


    【解决方案1】:

    您可以使用project reference 而不是直接指定路径。意思是,您可以从 WIX 项目中引用您的 DLL 项目,然后使用 $(var.MyDll.TargetPath) 之类的东西而不是 "..\Debug\MyDll.dll"

    【讨论】:

    • 当我从 vs 运行 build 和通过 tfs 运行 msbuild 时,如何以不同的方式传递该参数?
    • 嗨,这不是争论;那是项目参考……那是“添加参考……”。请参阅文档。此功能专为解决您的问题而设计。就用它吧。
    • 我知道这是一个项目参考。我的问题是如何设置 $(var.mydll.targetPath) ?它应该包含 VS 的某个值和来自 TFS 的 msbuild 的另一个值
    • WiX 预设。你不需要设置它。 MyDll 是引用项目的名称。
    • 谢谢。我试图了解从 TFS 运行 msbuild 时如何正确设置它...?
    【解决方案2】:

    根据您上面提供的信息,我认为您的项目的输出路径在调试和发布模式之间是不同的。这就是为什么它会在调试构建期间进入“debug\mydll.dll”并在发布模式下进入不同的文件夹。

    1. 右键单击项目文件并单击属性。
    2. 将调试和发布模式下的输出路径编辑到同一个文件夹。
    3. 更新您的 WIX 文件 (.wxs) 并指定此文件夹中的 dll 源。

    在此之后,构建应该在本地和服务器上都可以正常工作。

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2017-12-05
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多