WRT.拟议的欺骗:由于这里的问题暗示了相关的问题,我宁愿认为这不是一个骗局.
首先,我确实阅读了"复制本地"和项目参考的最佳实践是什么?(也是这个)我无论如何都要试试这个,但是得到一般反馈似乎是必要的,因为关于这个东西的文档非常糟糕,我只是在VS2010上,也许他们在新版本中改变了一些东西很高兴知道.
其次,我只对这个问题的项目引用感兴趣,因为我读过GAC的程序集处理方式不同而GAC与我的问题无关.
第三,在阅读了建议的欺骗之后,但更多的是@Albireo这里的好答案,它似乎也很重要,区分文件依赖,其中依赖引用dll汇编文件和项目依赖(即我问的是什么) about),其中依赖项引用项目并隐式引用该项目的输出文件.
/x1 可执行1项目/x2 对于可执行2项目/lib 对于所有的dll程序集该DLL组件都已经Copy Local设置false了自己的项目引用,因为它们都建立在相同的输出目录.
2个可执行项目已设置Copy Local到true所有他们直接引用的DLL组件项目引用,这样的DLL将被复制到/x1 /x2分别.
现在的问题是.到被DLL文件不能直接通过一个可执行的项目引用,但只传递地通过引用的程序集:请问组件,这是只有通过其他组件引用传递性,被复制到输出文件夹的可执行文件的,当"复制本地" 被设定为第一次装配时是真的吗?
例: …
在使用ServiceStack 3.9.71.0编译项目时,我在visual studio中出现了以下警告(似乎也影响了最新版本).不知道为什么它之前没有显示,但是在我创建了一个引用我的主项目并且都引用了相同服务堆栈DLL的测试库后它已经开始显示:
警告2发现无法解析的同一依赖程序集的不同版本之间发生冲突.当日志详细程度设置为详细时,这些引用冲突将在构建日志中列出.C:\ Program Files(x86)\ MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets 1635
检查构建日志显示:
10>"ServiceStack.Interfaces,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"和"ServiceStack.Interfaces,Version = 3.9.60.0,Culture = neutral,PublicKeyToken = null"之间存在冲突.10>"ServiceStack.Interfaces,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"被选中,因为它是主要的并且"ServiceStack.Interfaces,Version = 3.9.60.0,Culture = neutral,PublicKeyToken = null"不是.10>依赖于"ServiceStack.Interfaces,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"[C:\ proj\packages\ServiceStack.Common.3.9.71\lib \net35\ServiceStack.Interfaces.dll]的引用] ......
此错误是正确的,因为除了旧版本的ORMLite之外,NuGet中的最新版本似乎引用了旧版本的ServiceStack.Interfaces(http://i.imgur.com/4vw3069.jpg).我已从我的系统中删除了所有以前版本的ServiceStack,因此它不会拾取任何旧的DLL.我的项目只引用了ServiceStack,common,interfaces和text; 我删除了ORM,因为我没有使用它,但将它添加到两个项目都无济于事.
有点不确定我如何解决这个错误,因为Github似乎自3.9.60后没有更新,任何想法?