Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我的DLL只有4份而不是1份?_C#_Visual Studio 2010_Visual Studio_Dll - Fatal编程技术网

C# 我的DLL只有4份而不是1份?

C# 我的DLL只有4份而不是1份?,c#,visual-studio-2010,visual-studio,dll,C#,Visual Studio 2010,Visual Studio,Dll,我有两个项目的解决方案 两个项目都需要相同的4个DLL 我有一个lib文件夹,每个项目中有4个DLL 编译解决方案时,每个lib文件夹中的4个DLL将复制到bin文件夹 现在,有4组相同的4个DLL 我尝试将DLL放在bin目录中,但VisualStudio对此抛出了很多错误 这就是它的工作原理吗?理想情况下,我只想要一套,最多两套。不确定我应该把DLL放在哪里来解决这个问题。在每个项目中,您都会引用它们(右键单击项目并“添加引用”)。构建解决方案或项目后,Visual Studio应自动将所需

我有两个项目的解决方案

两个项目都需要相同的4个DLL

我有一个lib文件夹,每个项目中有4个DLL

编译解决方案时,每个lib文件夹中的4个DLL将复制到bin文件夹

现在,有4组相同的4个DLL

我尝试将DLL放在bin目录中,但VisualStudio对此抛出了很多错误


这就是它的工作原理吗?理想情况下,我只想要一套,最多两套。不确定我应该把DLL放在哪里来解决这个问题。

在每个项目中,您都会引用它们(右键单击项目并“添加引用”)。构建解决方案或项目后,Visual Studio应自动将所需的引用DLL复制到
/bin
目录中

至于多个副本,由于每个项目通常是自治的,所以每个项目都将有一组引用的dll,但若项目a引用项目B,并且您只使用项目a(假设项目B是类库),那个么项目a应该只有6个dll

- ProjectA/bin/Debug/projectA.dll
- ProjectA/bin/Debug/projectB.dll
- ProjectA/bin/Debug/shared1.dll
- ProjectA/bin/Debug/shared2.dll
- ProjectA/bin/Debug/shared3.dll
- ProjectA/bin/Debug/shared4.dll

是的,这就是它的工作原理

可以通过将引用上的属性更改为false来调整此过程


在启动项目中将其设置为true,在另一个项目中将其设置为false。

为什么您关心它将DLL复制到每个bin目录?真正重要的是在发布环境中安装DLL的位置。如果将两个项目安装到同一文件夹中,或将DLL安装到公共库文件夹(或GAC)中,则每个项目只需要一个副本。