2012-11-19 19 views
4

我有两个项目的解决方案。4我的DLL的副本,而不是1?

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

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

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

现在,有4套相同的4个DLL。

我试着把DLL放在bin目录下,但Visual Studio向这个插入了很多错误。

这是应该如何工作?理想情况下,我只想要一组,最多两个。不知道我应该把我的DLL来解决这个问题。

+4

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

回答

3

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

对于多个副本,由于每个项目通常都是自治的,每个项目都有一组引用的dll,但是如果项目A引用项目B,并且只使用项目A(比如项目B是一个类库),那么应该只有6个dll的项目A.

- 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 
4

是的,这是它应该如何工作。

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

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

相关问题