Visual studio 2010 同一个wixproj文件仅适用于VS 2012 IDE,但不适用于VS命令提示符

Visual studio 2010 同一个wixproj文件仅适用于VS 2012 IDE,但不适用于VS命令提示符,visual-studio-2010,msbuild,wix,msbuild-4.0,wix3.7,Visual Studio 2010,Msbuild,Wix,Msbuild 4.0,Wix3.7,我正在尝试这方面的步骤。我已经在本地机器上的文件夹中安装了wix二进制文件 所以我得到了一个由wix VS 2010插件创建的wix安装程序项目。我可以使用VS 2010 IDE来构建它并生成msi文件,但在VS命令提示符下对Msbuild不能做同样的事情。Msbuild尝试编译时,出现一个错误,表示找不到candle.exe: 未处理的异常:System.IO.FileLoadException:无法加载文件或程序集的file:///C:\MyFolder\Wix\candle.exe'或其依

我正在尝试这方面的步骤。我已经在本地机器上的文件夹中安装了wix二进制文件

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

未处理的异常:System.IO.FileLoadException:无法加载文件或程序集的file:///C:\MyFolder\Wix\candle.exe'或其依赖项之一。不支持此操作。(来自HRESULT:0x8013155的异常)--->System.NotSupportedException:试图从网络位置加载程序集,这会导致程序集在.NET Framework的早期版本中被沙盒化。默认情况下,.NET Framework的此版本不启用CAS策略,因此此负载可能很危险。如果此加载不是为了沙箱程序集,请启用loadFromRemoteSources开关。有关更多信息,请参阅

我非常确定exe在正确的位置,因为VSIDE可以找到它。我想知道Msbuild缺少什么

谢谢大家!

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

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

$(SourceCodeControlRoot)\wix\3.6.3220.0\
$(WixToolPath)Wix.targets
$(WixToolPath)wixtasks.dll
这里的重要引语如下:

WixTargetsPath属性值必须相对于.wixproj项目 使用它的文件。WixTasksPath属性在内部使用 要加载WixTasks.dll的wix.targets

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

那么,您能否提供您为
WixToolPath
WixTargetsPath
WixTasksPath
提供的值。以及解压缩wix36 binaries.zip或wix37 binaries.zip的路径

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

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

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

$(SourceCodeControlRoot)\wix\3.6.3220.0\
$(WixToolPath)Wix.targets
$(WixToolPath)wixtasks.dll
这里的重要引语如下:

WixTargetsPath属性值必须相对于.wixproj项目 使用它的文件。WixTasksPath属性在内部使用 要加载WixTasks.dll的wix.targets

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

那么,您能否提供您为
WixToolPath
WixTargetsPath
WixTasksPath
提供的值。以及解压缩wix36 binaries.zip或wix37 binaries.zip的路径

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

我从这里找到答案:。 在解压缩二进制文件之前,右键单击zip文件,选择property并从第一个选项卡中选择Unblock。然后按正常方式解压。

我在这里找到了答案:。
在解压缩二进制文件之前,右键单击zip文件,选择property并从第一个选项卡中选择Unblock。然后将其正常解压缩。

您使用的是VS2010命令提示符本身还是以前的版本?您的MSBuild TargetVersion本身是否为4.0?是的,我使用VS2010中的命令提示符,而MSBuild版本为4.0。您使用的是VS2010命令提示符本身还是以前的某个版本?您的MSBuild TargetVersion本身是否为4.0?是的,我使用VS2010中的命令提示符,MSBuild版本为4.0。感谢您的努力,但我非常确定它是相同的路径。另外,我只安装了一个版本的Wix二进制文件。从VS2010的输出窗口中,我知道那些exe(热量、蜡烛和光线)可以工作。相同的wixproj文件适用于VS2010,但不适用于Msbuild。真奇怪!有这方面的消息吗?我也有同样的问题。奇怪的是它起作用了,然后突然我就不再工作了。我在单击“从VS2010构建”时遇到了问题感谢您的努力,但我非常确定这是同一条道路。另外,我只安装了一个版本的Wix二进制文件。从VS2010的输出窗口中,我知道那些exe(热量、蜡烛和光线)可以工作。相同的wixproj文件适用于VS2010,但不适用于Msbuild。真奇怪!有这方面的消息吗?我也有同样的问题。奇怪的是它起作用了,然后突然我就不再工作了。单击“从VS2010构建”时遇到问题