我有一个使用自定义.NET库(.DLL文件)的ASP.NET应用程序。该.DLL文件名称很强。该库经常有小的更新,我希望能够在不重新编译应用程序的情况下更新此.DLL。该应用程序必须进行预编译,因为我不想将它的来源提供给我的客户(不是它不能被反编译,但除此之外)。
这可以以某种方式完成吗?目前我只是得到一个错误,即.DLL版本错误。
答案 0 :(得分:5)
您可以为他们提供更新的配置文件以使用新的dll。此配置需要具有自定义版本策略,将请求从一个dll重定向到另一个dll。有关详细信息,请参阅this article。
实际上this article提供了有关整个流程的更多信息以及您可以定义版本政策的不同级别。
答案 1 :(得分:0)
您可以使用反射在运行时以动态方式加载程序集。 Activator.CreateInstance应该可以解决问题。
IMyInterface myObject = (IMyInterface)Activator.CreateInstance( "TheAssemblyName",
"TheTypeName",
null )
如果您使用的是.Net 3.5,则可以使用加载项和扩展性。看看这里: http://msdn.microsoft.com/en-us/library/bb384241.aspx
答案 2 :(得分:0)
也许你可以把强类型的dll放在gac中,结束dll版本控制,所以旧版本将始终可用,新版本只会被新编译的应用程序使用,旧的应用程序将被使用他们的旧dll版本,直到他们再次编译和部署。
希望这可能有所帮助。