我正在使用 Vs2010 和 Wix 3.6.0917.0,作为记录。我在 .wixproj 文件中经常使用 $(SolutionDir) 属性,因为我只将安装程序构建为解决方案构建的一部分或团队构建的一部分,而不是单独构建。但是,虽然从命令行构建工作得很好(无论是从桌面上的 cmd 还是在构建代理上构建时),当我尝试将 .wixproj 文件重新加载到 IDE 时,我都会收到错误,因为所有 $(SolutionDir) 变量正在解析到项目目录,而不是解决方案目录。考虑:
C:\workspace\projectCollection\teamProject\branch\solution.sln
C:\workspace\projectCollection\teamProject\branch\source\installer\installer.wixproj
并假设一个共享的自定义目标文件:
C:\workspace\projectCollection\teamProject\branch\build\shared.targets
在 installer.wixproj 中引用:
<Import Project="$(SolutionDir)build\shared.targets">
命令行构建工作正常...
C:\workspace\projectCollection\teamProject\branch\> MSBuild /t:build /property:Platform=x64;Configuration=Debug solution.sln
0 Errors
0 Warnings
Build succeeded!
但是加载到vs2010,你会看到......
The imported project
"C:\workspace\projectCollection\teamProject\branch\source\installer\build\shared.targets" was not found.
Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
C:\workspace\projectCollection\teamProject\branch\source\installer\installer.wixproj
您可以在这里看到 $(SolutionDir)build\shared.targets 的解析结果是获取项目目录而不是解决方案目录。是什么赋予了?