2012-08-13 28 views
0

我在我的.net应用程序中有2个自制DLL。第一个DLL是通用DLL,第二个DLL也使用第一个DLL。现在无论何时我更新第一个DLL(新版本号),我都需要重新编译第二个DLL。是否有可能更新第一个DLL而不需要重新编译第二个DLL? 谢谢!编译.net dll没有特定的vers vers

+2

是你的第一个DLL .NET或COM?在任何情况下,如果你已经正确引用它们并且公共接口保持不变,那么它不应该重要,也不需要重新编译。 – 2012-08-13 13:48:12

+0

DLL和App都是.net。但只要我更新了例如First.dll从版本1.1升级到1.2并更新我的应用程序,在我的应用程序中使用的Second.dll抱怨First.dll版本1.1不再可用(因为Second.dll是参考First.dll版本1.1编译的) – K232 2012-08-13 14:13:15

回答

2

将引用添加到库时,请确保将引用上的“特定版本”属性设置为“False”。只要你没有引用一个特定的版本,它就没有关系。您将能够重新编译依赖项,而无需重新编译依赖于它们的项目。但是,Visual Studio会自动重新编译您的项目,即使除依赖项的版本号外没有任何更改。从技术上讲,这是没有必要的,所以你仍然可以运行旧的exe对新的库等。

+0

嗨史蒂夫!是的,已经有了,但Second.dll仍然在抱怨:-(忘了提及:它是.net 2.0 ....但'特定版本'属性已经可用了,我会仔细看看。它应该以这种方式工作,我会尽力找到我的错误...谢谢! – K232 2012-08-13 14:42:11

0

如果你引用一个程序集,并且程序集的接口改变了,那么是的,你必须重新编译调用代码。但是,如果您有一个包含接口的常用程序集,则可以更改所需的服务器程序集,因为调用代码仍然只会引用具有接口的程序集。

就像SteveDog说的那样,将特定版本属性(您的引用)设置为False。