Nuget引用的DLL未被复制到引用项目

时间:2014-07-10 13:44:21

标签: visual-studio-2013 nuget

I have two project A,B。项目B参考项目A(B - > A)。项目A有Thinktecture.IdentityServer.Core包,它依赖于Thintecture.IdentityModel和一个使用Thinktecture.IdentityServer.Core的简单类:

public class Class1
{
    public UseThinktecturecoreInOrderToCopyDll()
    {
        // wrapper for Thinktecture.IdentityModel
        Thinktecture.IdentityModel.Web.ProtectionMode wrapper
            = Thinktecture.IdentityModel.Web.ProtectionMode.MachineKey;
    }
    Thinktecture.IdentityServer.Repositories.ICacheRepository repository;
}

现在当我构建解决方案时,Thintecture.IdentityModel被复制到项目A,但是没有被复制到项目B.但是当我更新包时,下一个解决方案构建的Thintecture.IdentityModel dll被复制到项目B.任何人都可以解释这个行为?如何在不更新包的情况下强制复制?为什么包更新解决了问题?

我在更复杂的解决方案上遇到了这个问题。我知道可以通过单独构建项目A来解决问题,但我对该解决方案不满意,因为它需要单独构建项目A.

*此外,我不喜欢一个解决方案,我必须添加对我间接使用的每个项目的引用(对于Thinktecture.IdentityModel)。

1 个答案:

答案 0 :(得分:1)

您的NuGet包中的引用存在问题。您的Thinktecture.IdentityServer.Core在Thintecture.IdentityModel 3.4.0上有一个参考,您已经安装了Thintecture.IdentityModel 3.0.0。所以visual studio不会复制无效的Thintecture.IdentityModel 3.0.0参考。当您将Thintecture.IdentityModel更新到版本3.4.0时,它开始工作,因为引用有效。