无法在Visual Studio 2010安装程序项目中添加自定义操作
我将一个工作项目从Visual Studio 2008转换为VS2010。 C++解决方案构建一个可执行文件和3个DLL,以及一个Windows安装程序项目。无法在Visual Studio 2010安装程序项目中添加自定义操作
转换为VS2010后,由于项目输出组没有密钥文件,因此无法构建项目输出组“主输出”中名为'xxxx(主动)的主输出'的构建错误。 “
我删除并重新添加了输出组,然后尝试添加自定义操作。可执行输出未被列为自定义操作的候选者。然后我注意到当我选择可执行的“主要输出”属性时,“KeyOutput”属性设置为(无)并呈灰色。
重新访问VS2008版本时,KeyOutput属性未灰显。我在MSDN上发现了一个无用修正的错误消息:
“删除自定义操作并将其替换为指向具有密钥文件的项目输出组的自定义操作。
很明显,科技作家不知道如何解决它。请记住原始构建正确工作和安装。我相信根本问题是为什么KeyOutput属性被禁用 - 但为什么? (当查看“输出”,它正确地显示在每个项目中的EXE或DLL)
经过进一步调查,我发现这是在Visual Studio 2010
一个错误。如果你为一个项目指定输出名称不同于项目本身的名称,它没有做正确的事情。
要重现此,改变
项目属性 - >连接器 - >常规 - > OUTPUTFILE从$(OUTDIR)$(的TargetName)$(TargetExt)是类似$(OUTDIR)foobar.exe
然后项目将KeyOutput值更改为空,并且不适用于安装中的自定义操作。除了使用默认的项目命名约定之外,没有任何解决方法。
我有一个类似的问题,我想出了为什么安装项目找不到键输出文件。
我的项目Output Directory被定义为$(SolutionDir)\ bin \ $(Platform)。 SolutionDir已经有一个尾部反斜杠,所以\ bin在路径中放置了一个双反斜杠。该项目将建设得很好,但安装项目无法解决关键输出。将输出设置为$(SolutionDir)bin \ $(Platform)\解决了该问题。
很晚的答案,但希望它可以节省一个人2个小时我用VS 2010砸我的头墙上(这是一个可怕的一块软件 - 加载速度慢,每个devenv占用300兆工作内存,现在这个bug !!!!! ????)在这里 - 罗杰邓恩是正确的是说,它是项目属性 - >连接器 - >一般 - > OutputFile导致的问题 - 如果你有像这样的东西$(OutDir)foobar.exe自定义操作barfs,如果您将其更改回$(OutDir)$(TargetName)$(TargetExt),它会再次运行!
解决方法是将宏$(TargetName)更改为foobar,然后将用户$(OutDir)$(TargetName)$(TargetExt)更改为您的exe的自定义名称。
$(TargetName)可以在 - Project properties-> Configuration Properties-> general-> TargetName中更改。
但这多么浪费时间VS 2010.
删除这些额外的反斜杠'\\'为我解决了这个问题。 – 2012-05-25 20:03:26