我将一个工作项目从 Visual Studio 2008 转换到 VS2010。 C++ 解决方案构建了一个可执行文件和 3 个 DLL,以及一个 Windows 安装程序项目。
转换到 VS2010 后,我收到构建错误“无法从项目输出组‘Primary Output’构建名为‘Primary Output from xxxx (Active)’的自定义操作,因为项目输出组没有 key 文件。”
我删除并重新添加了输出组,然后尝试添加自定义操作。可执行输出未被列为自定义操作的候选者。然后我注意到当我选择可执行文件“Primary Output”属性时,“KeyOutput”属性设置为(None)并显示为灰色。
重新访问VS2008版本时,KeyOutput属性并没有变灰。我在 MSDN 上找到了错误消息,并进行了无用的修复:
“删除自定义操作并将其替换为指向具有 key 文件的项目输出组的自定义操作。”
显然技术作家也不知道如何修复它。请记住,原始版本可以正常工作并正确安装。我认为根本问题是为什么 KeyOutput 属性被禁用 - 但为什么呢? (当查看“输出”时,它会正确显示每个项目中的 exe 或 dll)
最佳答案
我遇到了类似的问题,我想通了为什么安装项目找不到关键输出文件。
我的项目输出目录定义为 $(SolutionDir)\bin\$(Platform)。 SolutionDir 已经有一个尾部反斜杠,所以\bin 在路径中放置了一个双反斜杠。该项目可以正常构建,但安装项目无法解析关键输出。将输出设置为 $(SolutionDir)bin\$(Platform)\解决了这个问题。
关于c++ - 无法在 Visual Studio 2010 安装程序项目中添加自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5045657/