我有一个C#程序集,其中包含一些Nuget依赖项,这些依赖项是作为TFS构建中的工件生成的。生成的程序集中两个不同版本的相同程序集包含在其引用的程序集列表中。我想知道这是怎么发生的,因为我不确定后果,并且一开始并没有想到它是可能的。到目前为止,我还没有能够在任何一个最小的例子中重现这个问题。
详细说明,我有根据.NET Reflection,Mono.Cecil,dotPeek和ILSpy的Company.Product.A.dll引用了Company.Product.B.dll 1.0.0.0和Company.Product.B.dll 1.0.2.0例如
// The list of referenced assemblies below contains two versions of Company.Product.B.dll
Assembly.LoadFile(@"C:\Company.Product.A.dll").GetReferencedAssemblies()
ILDasm清单如下所示(我不确定第二个引用的_8是什么意思):
.assembly extern /*23000008*/ Company.Product.B
{
.ver 1:0:2:0
}
.assembly extern /*23000009*/ Company.Product.B as Company.Product.B_8
{
.ver 1:0:0:0
}
有谁可以告诉我什么样的事件序列会导致一个程序集引用同一个依赖程序集的两个不同版本?