【问题标题】:The same wixproj file only works in VS 2012 IDE, but not in VS command prompt相同的 wixproj 文件仅适用于 VS 2012 IDE,但不适用于 VS 命令提示符
【发布时间】:2013-01-24 20:33:30
【问题描述】:

我正在尝试这个page 的步骤。我已将 wix 二进制文件安装在本地计算机上的文件夹中。

所以我得到了一个由 wix VS 2010 插件创建的 wix 安装程序项目。我可以使用 VS 2010 IDE 来构建它并生成 msi 文件,但我不能在 VS 命令提示符下使用 Msbuild 做同样的事情。 Msbuild 编译时报错,提示candle.exe 找不到:

未处理的异常:System.IO.FileLoadException:无法加载文件或程序集“file:///C:\MyFolder\Wix\candle.exe”或其依赖项之一。不支持操作。 (来自 HRESULT 的异常:0x80131515)---> System.NotSupportedException:尝试从网络位置加载程序集,这会导致程序集在以前版本的 .NET Framework 中被沙盒化。此版本的 .NET Framework 默认情况下不启用 CAS 策略,因此这种加载可能很危险。如果此加载不打算对程序集进行沙箱处理,请启用 loadFromRemoteSources 开关。请参阅http://go.microsoft.com/fwlink/?LinkId=155569 了解更多信息。

我很确定 exe 位于正确的位置,因为 VS IDE 可以找到它。我想知道 Msbuild 缺少什么?

谢谢!

【问题讨论】:

  • 您使用的是VS2010命令提示符本身还是以前的版本?你的 MSBuild TargetVersion 本身是 4.0 吗?
  • 是的,我使用 VS2010 的命令提示符,msbuild 版本是 4.0。

标签: visual-studio-2010 msbuild wix msbuild-4.0 wix3.7


【解决方案1】:

我从这里找到答案:http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Error-in-candle-during-build-td7385947.html。 在解压缩二进制文件之前,右键单击 zip 文件,选择属性并从第一个选项卡中选择 Unblock。然后正常解压。

【讨论】:

    【解决方案2】:

    根据您提供的page,在代码行中输入的路径将有助于 MSBuild 脚本识别 WIX 二进制文件。

    <PropertyGroup>
            <WixToolPath>$(SourceCodeControlRoot)\wix\3.6.3220.0\</WixToolPath>
            <WixTargetsPath>$(WixToolPath)Wix.targets</WixTargetsPath>
            <WixTasksPath>$(WixToolPath)wixtasks.dll</WixTasksPath>
    </PropertyGroup>
    

    这里的重要引述如下:

    WixTargetsPath 属性值必须与 .wixproj 项目相关 使用它的文件。 WixTasksPath 属性在里面使用 wix.targets 加载 WixTasks.dll

    应根据您解压缩文件的文件夹正确指定路径。否则有可能发生此错误。然后,该项目也将从 VS2010 正常运行,因为这是从 WIX 的安装位置引用 WIX 二进制文件。但是,MSBuild 将引用您在上述代码行中提供的值。

    那么,您能否提供您为WixToolPathWixTargetsPathWixTasksPath 提供的值。以及解压缩 wix36-binaries.zipwix37-binaries.zip 的路径。

    这些信息可能有助于解决这个问题,因此我也会更正这个答案。

    【讨论】:

    • 感谢您的努力,但我很确定这是同一条路径。另外,我只安装了一个版本的 Wix 二进制文件。从 VS 2010 的输出窗口,我知道那些 exe(热、蜡烛和光)的工作原理。相同的 wixproj 文件适用于 VS 2010,但不适用于 Msbuild。多么奇怪!
    • 这个有什么消息吗?我遇到过同样的问题。奇怪的是它起作用了,然后突然我不再工作了。单击从 VS2010 构建时出现问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2013-06-13
    • 2020-08-03
    相关资源
    最近更新 更多