为什么MSBuild从VS2008成功的命令行失败?

时间:2010-04-09 01:44:10

标签: asp.net visual-studio-2008 msbuild

我有一个ASP.NET解决方案,可以在VS2008中构建得很好。

然而,当我这样做时它失败了:

MSBUILD.exe c:\path-to-sln 

它因CS0006错误而失败(“无法找到元数据文件'dll_name'”)。 当我在解决方案中尝试使用项目的.csproj时,它也会失败。

什么是VS2008,MSBuild缺失了?据我所知,VS了解MSBuild无法进行的程序集间依赖关系。有什么方法可以告诉MSBuild这些吗?

(我需要MSBuild才能从命令行工作,因为我是从CruiseControl.Net中的MSBuild-Task调用它。)

先谢谢。 :3)

(我看过How to get cmd line build command for VS solution?,但仍然没有得到它)​​

1 个答案:

答案 0 :(得分:1)

在msbuild可以工作之前,你必须先设置环境变量。您在问题中发布的链接实际上有答案(请参阅第一个答案条目)。

自动执行此操作的一种方法是选择所需的vcvars * .bat文件,具体取决于您希望为其构建可执行文件的平台。例如,如果要为x86构建,vcvarsall.bat文件表示您需要bin\vcvars32.bat。您可以复制此批处理文件,手动添加包含,lib和libpath,并在批处理文件的:end部分添加构建步骤,如下所示:

...
(batch file contents go here)
:end
MSBUILD.exe c:\path-to-sln 

之后,您可以告诉您要构建的任何程序来运行刚创建的批处理文件。