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)。
答案 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时,它开始工作,因为引用有效。