外部Dll不会被TFS掉线

Sau*_*mar 2 .net asp.net visual-studio-2010 tfsbuild tfs2010

我们有一个运行TFS2010的共享构建服务器.我们目前使用VS2008解决方案(很快计划升级到VS2010).

我们的ASP.NET 3.5解决方案有一些外部dll,它们放在我们解决方案的'Library'文件夹中.问题是,如果我们从开发机器发布网站,则发布的文件夹是完美的.但是当TFS在构建服务器上构建它时,有3个外部dll永远不会被删除,我们必须在构建后手动复制它们.

我们尝试了一些东西,但它没有解决问题.我们还检查过像其他dll一样,这3个dll都有正确的刷新文件放在bin文件夹中.

一个问题可能是这些有问题的dll中的一些可能在开发机器的GAC上.如果确实存在问题,那么无论如何我们都无法在构建服务器上将dll放入GAC.

有什么想法我们如何强制这些3 dll被TFS正确地放入bin文件夹?

Lud*_*dwo 6

如果部署/复制包含对GAC中注册的自定义组件的引用的应用程序,则无论"复制本地"设置如何,都不会使用该应用程序部署/复制该组件.请参阅MSDN

您必须通过将专用元数据添加到GAC程序集引用来强制将local local复制到true .编辑项目文件并添加私有元数据:

<Reference ..>
    <Private>True</Private>
</Reference ..>

<ProjectReference ..>
    <Private>True</Private>
</ProjectReference ..>
Run Code Online (Sandbox Code Playgroud)

现在应该从输出文件夹中复制/删除您的GAC程序集.

  • 为了避免手动编辑,有一个技巧:将引用Copy Local设置为false,然后再设置为true,Visual Studio会自动添加Private元数据.至少VS 2010确实...... (2认同)