代码之家  ›  专栏  ›  技术社区  ›  Chris Nicola

Silverlight解决方案在VS2008中生成,但在MSBuild中失败

  •  0
  • Chris Nicola  · 技术社区  · 15 年前

    我有一个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 回复  |  直到 15 年前
        1
  •  1
  •   TylerHam    15 年前

    确保

    • 对解决方案中其他项目的引用被正确地设置为projects而不是dll,并且
    • 所有不是Windows应用程序、控制台应用程序或Web应用程序的项目都设置为类库。

    我昨天有一个问题,症状与你相似,那是由于VB项目设置为Windows应用程序,但应该是类库。在VS2008中,它的构建很好,因为错误配置的项目的.dll和.exe已经在\bin\Debug\中构建,而visualstudio正在使用它作为引用。我没有注意到它,直到我做了一个清洁,这导致我不得不建立两个项目,第一个失败,因为它找不到被引用的项目的dll/exe,第二个建设罚款。

        2
  •  0
  •   Chris Nicola    14 年前

    为了解决这个问题,我必须设置/target:Build instead “重建”的概念。在编译依赖于此的项目时,似乎重建正在清除链接程序集中的生成,而没有正确地重建它们。