TeamCity中用于Web应用程序的MSBuild不复制引用的库

时间:2013-11-25 12:04:31

标签: dll reference msbuild copy teamcity

我正在尝试在TeamCity中使用msbuild来配置buildserver以准备构建。一切似乎都没问题,除了msbuild不通过项目引用复制引用的库,例如我有一个使用SSH.NET的项目,我的Web App使用该项目,但我无法强制msbuild将该SSH.NET库复制到Web App发布文件夹。

我使用这个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手动发布命令构建相同的构建?

1 个答案:

答案 0 :(得分:0)

我想提到我最近花了两天时间试图找出为什么TeamCity没有复制引用的程序集。事实证明,这是因为虽然集会是&#34;参考&#34;在&#34;参考文献&#34;并且将Local Local复制为true,它没有复制它,因为程序集是在运行时动态加载的。我必须做的是添加一行,从该库创建任何对象,然后TeamCity设法拾取并复制引用的程序集。我不知道这对你的情况是否有帮助。