VS 2015 复制以输出项目引用的 GAC 引用,而不考虑复制本地设置

VS 2015 copies to output GAC references of a project reference regardless of copy local setting

我已经为这种行为提出了 connect issue

VS 2015 复制到项目引用的输出 GAC 引用,而不考虑复制本地设置。 VS 2010 不会对相同的解决方案和项目执行此操作,尊重本地副本 属性。 到目前为止,我发现的唯一解决方法是在项目 A 中添加对 Microsoft.Web.Services3.dll 的直接引用,并将其设置为 copy local = false.

重现步骤:

Project A
|__ Project B (Project Reference, copy local = true)
     |__Microsoft.Web.Services3.dll (GAC, copy local = false)

实际:

Microsoft.Web.Services3.dll 正在复制到项目 A 的输出目录中。

预期:

Microsoft.Web.Services3.dll 没有被复制到项目 A 的输出目录。

知道为什么会这样吗? MSDN documentation 明确指出 GAC 依赖项不应复制到输出,VS 2010 尊重这一点。

当我从 VS2013 迁移到 VS2015 时,我 运行 遇到了几个第三方 GAC 程序集的类似问题。我的解决方案是进入每个 .csproj 文件并添加以下内容:

<PropertyGroup>
    <DoNotCopyLocalIfInGac>true</DoNotCopyLocalIfInGac>
</PropertyGroup>