在Visual Studio 2010中加热项目不支持-var参数吗?



>我在使用该命令时遇到问题

"$(WIX)binheat.exe" project "$(SolutionDir)My.project.csproj" -dr FOLDER -cg filesUP -pog:Content -pog:Satellites -gg -g1 -sf -srd -suid -var "var.SourceDir" -out "$(ProjectDir)FilesFragment.wxs"

输出文件忽略此参数 -var "var。源目录"并使用变量。My.project.ProjectDir

...
<Component Id="My.project.Content.Web.config" Directory="My.project.Content" Guid="10E9C2E0-2A35-4D6F-B12D-D66AE2E831D4">
    <File Id="My.project.Content.Web.config" Source="$(var.My.project.ProjectDir)Web.config" />
</Component>
...

Visual Studio 2010 返回此错误:

未定义的预处理器变量 '$(var.My.project.ProjectDir)'。
C:\My.project\My.project.Installer\FilesFragment.wxs

我搜索了一下,但只找到了将热量与参数 dir 一起使用的示例。

我在文档中没有找到任何说参数 -var 不受加热项目支持的内容。

有解决办法吗?

我找到的一个解决方案是不使用以下命令:

"$(WIX)binheat.exe" project "$(SolutionDir)My.project.csproj" -dr FOLDER -cg filesUP -pog:Content -pog:Satellites -gg -g1 -sf -srd -suid -var var.SourceDir -out "$(ProjectDir)FilesFragment.wxs"

删除参数-var var.SourceDir并将环境变量My.project.ProjectDir设置在其位置,并删除参数-dr FOLDER并在文件中设置一个 id My.project.Content其位置。

这样,命令应如下所示:

"$(WIX)binheat.exe" project "$(SolutionDir)My.project.csproj" -cg filesUP -pog:Content -pog:Satellites -gg -g1 -sf -srd -suid -out "$(ProjectDir)FilesFragment.wxs"

在我的用例中,到目前为止,我对这个解决方案没有任何问题。

我正在使用此选项,我的项目中没有任何问题。也许,引号是不必要的?尝试-var var.SourceDir而不是-var "var.SourceDir"

另一个猜测:你收获了一个项目(heat.exe project)。可能是此选项忽略-var开关,并使用与项目相关的内容覆盖它。据我所知,project收获类型在高温下效果不佳,不建议使用......您可以尝试改为运行heat.exe dir以查看它是否正确通过了-var

最新更新