Silverlight解决方案在VS2008中构建,但在MSBuild中失败

时间:2010-06-17 16:54:51

标签: wcf silverlight msbuild

我有一个Silverlight解决方案,我想为其创建一个构建脚本。我有一个看起来像这样的简单脚本

call "c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"

msbuild %CD%\V1\Incentive.sln /target:Rebuild /property:Configuration=DEBUG;WarningLevel=2 
msbuild %CD%\UI\IncentiveUI.sln /target:Rebuild /property:Configuration=DEBUG;WarningLevel=2

pause

然而,当我运行这个时,我得到了一个失败,有一些关于项目中包含链接文件的类的抱怨:

http://pastebin.com/JRE3tWfh

这个解决方案在VS2008中编译得很好,所以我无法弄清问题是什么。我不得不猜测我在这里使用msbuild的方式有问题。

2 个答案:

答案 0 :(得分:1)

确保

  • 项目正在以正确的顺序建设,
  • 解决方案中对其他项目的引用适当地设置为项目而不是dll,
  • 所有非Windows应用程序,控制台应用程序或Web应用程序的项目都设置为类库。

如有必要,请查看原始.csproj XML。

我昨天遇到了类似症状的问题,因为VB项目设置为Windows应用程序,但应该是类库。它在VS2008中构建得很好,因为错误配置的项目的.dll和.exe已经内置在\ bin \ Debug \中,而Visual Studio正在使用它作为其引用。我没有注意到它,直到我做了一个Clean,导致我必须两次构建项目,第一个失败,因为它找不到引用的项目的dll / exe,第二个建筑没法。

答案 1 :(得分:0)

要解决此问题,我必须设置/ target:Build而不是“Rebuild”。看起来好像Rebuild正在从链接的程序集中清除构建,并且在编译依赖于它的项目时没有正确地重建它们。