【发布时间】:2015-10-28 07:22:26
【问题描述】:
我们刚刚在两个分支之间进行了合并(TFS)。但是现在当我编译时,我有这个错误:
No way to resolve conflict between
"AA.BB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
and
"AA.BB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=bfd296a93930d932".
Choosing "AA.BB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
“AA.BB”是我们的项目之一,我检查过我们仅将其作为项目引用。而且我们只有这样命名的项目。
有人知道为什么会发生此错误吗?这个 PublicKeyToken 错误是从哪里来的?
我已经尝试过的:
- 删除对该项目的所有引用并重新进行引用
- 搜索其中一个项目是否具有 copyLocal = true(不是这种情况)或直接引用 DLL(不是这种情况)
注意:
- 构建被认为是成功的,但是当我启动应用程序时出现错误(基本上是一个错误,说这个 dll 与清单不匹配)
- 如果我进入了使用这个的类,我没有错误
【问题讨论】:
-
您是否使用延迟签名?
-
@LasseV.Karlsen 我不知道这是什么,所以我想答案是否定的 但有一点可能是我们的构建服务器更改了一些程序集信息
-
它不应该改变在构建文件之后。您已经仔细检查过您只有项目引用,并且您没有直接引用构建输出? IE。到 bin\release\AA.BB.dll ?
-
是的,这是我检查的第一个想法(可以肯定的是,我删除了该项目的所有引用,并再次添加它们)。我看到我们目前使用密钥 AA.BB.snk 签署程序集但未选中“仅延迟签名”复选框
-
@J4N,从你上面贴的错误信息中,我们会检查这两个程序集的版本号是否相同;但一个有 publicKeyToken 而另一个没有。那么您是否曾经将程序集安装到 GAC 中?如果是这样,你卸载它,然后重新添加项目引用如何?
标签: c# .net visual-studio tfs