我有一个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?,但仍然没有得到它)
答案 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
之后,您可以告诉您要构建的任何程序来运行刚创建的批处理文件。