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

问题描述:

我有一个ASP.NET解决方案,在VS2008中构建得很好。为什么MSBuild从VS2008成功的命令行失败?

然而,当我做到这一点失败:

MSBUILD.exe c:\path-to-sln 

它失败,出现错误CS0006(“元数据文件‘dll_name引起’找不到”)。 当我尝试在解决方案中使用项目的.csproj时,它也失败。

什么是VS2008在做MSBuild丢失?这是我的理解,VS知道MSBuild不能。有什么办法可以告诉MSBuild这些吗?

(我需要的MSBuild在命令行工作,因为我从一个MSBuild任务从内部CruiseControl.Net调用它。)提前

感谢。 :3)

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

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

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

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

,你可以告诉任何你计划正在尝试构建以运行刚刚创建的批处理文件。

+0

感谢您的回答。 虽然我不明白你的答案的这一部分:“手动添加你的includes,lib和libpaths”。 除了sln和vcvars32.bat的内容,我还需要什么? – sundeep 2010-04-09 16:21:13

+0

您必须添加添加到Visual Studio目录的外部包含/库(如果有)。 vcvars * .bat文件没有它们;你必须手动将它们添加到bat文件中。我认为在你的情况下你不需要添加任何东西,因为你需要的只是解决方案。 – maranas 2010-04-09 17:41:36

+0

谢谢你maranas。 – sundeep 2010-04-14 20:46:54