使用MSBuild构建时缺少程序集引用但在VS 2008中构建成功

时间:2011-03-02 09:11:50

标签: visual-studio-2008 msbuild nant

我正在尝试为我们的项目创建nAnt构建脚本。 当我尝试通过msbuild构建它 - 从nAnt调用作为外部任务时,我得到了大量缺少的引用错误。但是当我尝试从VS 2008构建它时,没关系。 我发现一个项目正在引用(通过下面的命名空间的* .cs文件中的“using”子句)到另一个webproject。关键是这个WebProject在SLN中被称为WebClient,但在它的特性中,get也是具有其他命名空间的输出程序集,如Copmany.Something.dll。我试图通过从VS指向它来添加对它的引用但VS不允许我这样做,因为它将是循环依赖。 也许有人有类似的问题?

2 个答案:

答案 0 :(得分:1)

尝试从VS command promt拨打 MSBuild.exe 。命令行具有与VS相同的biuld环境。要使其从脚本或CI工作,您可以调用 C:\ Program Files \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat

修改 您可以构建您的sln文件:

MSBuild.exe 1.sln /t:Rebuild /p:Configuration=Release;Platform="Any CPU"

如果你可以确定VS构建Sln而没有错误,你可以在nant中设置相同的构建行为。

答案 1 :(得分:0)

我遇到了类似的问题,但结果却是由NAnt定位到4.0运行时引起的。 Visual Studio的目标是3.5,因此我认为依赖关系的处理方式不同。我通过强制NAnt定位3.5运行时来修复它。

<property name="nant.settings.currentframework" value="net-3.5" />