在C#解决方案中,在调试文件夹中创建引用的dll,奇怪的情况

时间:2014-05-28 06:26:42

标签: c# dll

我在c#的构建解决方案中经历了一些奇怪的情况。

解决方案中的所有5个项目。

A.exe B.dll b.dll C.dll c.dll(B,b,C,c都是usercontrol项目)。

A.exe引用了B.dll和C.dll。

B.dll引用了b.dll。

C.dll引用了c.dll。

所有引用的选项是"复制本地" :是的。

当构建A.exe项目时,在Debug文件夹中,创建A.exe和B.dll以及b.dll和C.dll。 (不是c.dll)。

最后我知道差异的原因。

b.dll usercontrol用于具有b元素名称的B.dll xaml。

但是c.dll usercontrol没有名称。

B与C的区别在于是否在xaml中使用了所使用的控件的名称。

任何人都可以解释一下,为什么这个差异会导致exe项目调试文件夹中的dll拷贝?

1 个答案:

答案 0 :(得分:0)

当你给一个控件x:Name时,它会导致它在生成的代码(部分)类后面为它创建一个实例。这足以使引用跟随系统检测引用,并在依赖项dll中复制。

这就是为什么你会看到行为上的差异。