2013-11-25 112 views
0

我想在TeamCity中使用msbuild来配置buildserver以准备构建。除了msbuild不会通过项目引用复制引用的库之外,一切似乎都可以,例如,我有一个使用SSH.NET的项目,而我的Web App使用该项目,但我无法强制msbuild将SSH.NET库复制到Web App发布文件夹。TeamCity for MS应用程序的MSBuild不复制引用的库

我使用的MSBuild XML:

<MSBuild Projects="$(WebAppDir)\WebApp.csproj" 
     Targets="ResolveReferences; _WPPCopyWebApplication" 
     Properties="Configuration=$(Configuration); Platform=$(Platform); WebProjectOutputDir=..\$(ReleaseOutputDir)\$(WebAppDir)\" 
      /> 

我还试图用SLN建设者。使用此构建器,Teamcity将复制所有库,但它不是发布构建版本。

我试过做什么?在SO上检查其他线程,我试过了:

  1. 将标记<private>True...添加到依赖项目的csproj文件;
  2. 将引用库的属性更改为所有可能的值:将local复制到true,false,content等;
  3. 我也尝试使用nuget installer步骤来解决引用问题。

    但这两种都不适合我。

    MB是否有另一种方式获取msbuild中的web应用程序的发布版本?或者我应该如何让msbuild准备与Visual Studio手动发布命令构建相同的构建?

+0

您是否尝试过使用内置发布配置文件?在引擎盖下使用MSBuild,但更容易设置。看看Troy Hunt撰写的这篇伟大的文章。帮助了我很多http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity.html –

回答

0

只是想我会提到我最近花了2天试图找出为什么TeamCity没有复制引用程序集。事实证明,这是因为尽管程序集在“参考”和“复制本地”下被“引用”为true,但它并未复制它,因为程序集是在运行时动态加载的。我所要做的是添加一行,从该库创建任何对象,然后TeamCity设法拾取并复制引用的程序集。我不知道这是否会帮助你的情况。