我正在使用 VS 2008。我可以使用 IDE 成功编译我的解决方案。但是,当我尝试使用 devenv.com 构建它时,它失败并提示“错误:找不到项目输出组‘(无法确定名称)’的输出。该组、其配置或其项目可能已被删除从解决方案。”在构建 .vdproj 安装项目时。
类似的问题是这里
有什么想法可以解决这个问题吗? 谢谢
编辑:实际上 Cruisecontrol.net 尝试使用 devenv.com 构建解决方案。这是我在 ccnet.config 中使用的 devenv 部分:
<devenv>
<solutionfile>xxxxx.sln</solutionfile>
<configuration>Debug</configuration>
<buildtype>Build</buildtype>
<executable>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com</executable>
<buildTimeoutSeconds>60000</buildTimeoutSeconds>
<version>VS2008</version>
</devenv>
听起来您传递给 devenv.com 的命令行中的参数无效。
如果您使用简单的 hello world 项目创建一个新的解决方案,它可以正常工作吗?
干杯,
塞巴斯蒂安
您是否尝试过使用 MSBuild 任务而不是 VisualStudio?我一直使用 MSBuild 获得更好的结果,特别是因为这意味着您不需要在构建机器上安装 VisualStudio。
这是基于我使用的通用配置:
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>D:\dev\your\path\</workingDirectory>
<projectFile>xxxx.sln</projectFile>
<buildArgs>/v:m /noconlog /p:Configuration=Debug</buildArgs>
<targets>Build</targets>
<!--<logger>C:\Program Files\CruiseControl.NET\server\Rodemeyer.MsBuildToCCNet.dll</logger>-->
<!-- If you dont have that logger for CruiseControl, you should try it :) -->
</msbuild>
如果这不起作用,您还可以从命令行运行它:
>cd "D:\dev\your\path\"
>D:
>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe /v:m /p:Configuration=Debug xxxxx.sln
如果需要,您可以将
v
(Verbosity
) 标志更改为更高的值以获得更多输出(请参阅此处有关 MSBuild 的 msdn 文章)。
我遇到了类似的问题,并且能够通过在命令中提供解决方案文件和项目文件来解决。
这是
devenv
命令参考的文档
这是用于修复的代码(用 powershell 编写):
$project = "<full path to setup project>"
$sln = "<full path to solution file>"
devenv.com $sln /build "Release" /project $path