2012-03-08 105 views
0

我有一个使用(不执行)的应用程序在一个单独的DLL的接口。我最近对此界面进行了更改。但是,我的应用程序不使用此界面中的任何新功能。编译使用新的DLL但用旧的DLL运行

我的问题是:是否可以将使用旧的DLL运行应用程序,如果我编译使用新的DLL(有了新的变化)的应用程序。

+0

“是否可以”真的取决于你的需求是什么。如果它适用于您的应用程序,并且您不想更改它,则不必这样做,但通常最好引用该项目而不是dll,以确保您以后不会遇到依赖项问题。 – 2012-03-08 01:39:28

+0

我实际上正在引用项目,这就是为什么我正在编译新的代码。但是当我部署它时,库的旧DLL仍然存在。我只想知道是否需要部署新的DLL。 – Koda 2012-03-08 02:03:00

+0

@Alvin是的。无论是更新后的基准复制到使用它的项目的bin目录,或重建依赖项目,它应该找到更新的版本(假设基准从原来的生成位置添加和'CopyLocal'是真的。 – 2012-03-08 02:08:47

回答

0

它应该是在正常情况下的罚款。

我不得不尝试了这一点,以确保...但是,实际上它似乎好了工作了。我在dll中创建了一个接口,在应用程序中引用它,并使用反射来检查dll中接口上的方法。然后,修改了接口,重新编译了dll和应用程序,并且应用程序能够检索旧的或新的dll的接口上的方法。

+0

它似乎为我工作也没关系。我只是担心,应用程序将随后抛出一些运行时异常。 – Koda 2012-03-08 03:40:51

+1

好吧,如果现在不扔一个......这只是一和零,为什么会抛出一个后来? – 2012-03-08 04:09:04

+0

检查了这一点:http://msdn.microsoft.com/en-us/library/7wd6ex19%28v=VS.100%29.aspx – 2012-03-08 04:11:03