我有一个使用自定义 .NET 库(一个 .DLL 文件)的 ASP.NET 应用程序。该 .DLL 文件是强命名的。该库有频繁的小更新,我希望能够在不重新编译应用程序的情况下更新这个 .DLL。必须预编译该应用程序,因为我不想将它的源代码提供给我的客户(不是说它不能被反编译,但这不是重点)。
这可以以某种方式完成吗?目前我只是收到一个错误,即 .DLL 的版本错误。
我有一个使用自定义 .NET 库(一个 .DLL 文件)的 ASP.NET 应用程序。该 .DLL 文件是强命名的。该库有频繁的小更新,我希望能够在不重新编译应用程序的情况下更新这个 .DLL。必须预编译该应用程序,因为我不想将它的源代码提供给我的客户(不是说它不能被反编译,但这不是重点)。
这可以以某种方式完成吗?目前我只是收到一个错误,即 .DLL 的版本错误。
您可以使用反射在运行时动态加载程序集。Activator.CreateInstance 应该可以解决问题。
IMyInterface myObject = (IMyInterface)Activator.CreateInstance( "TheAssemblyName",
"TheTypeName",
null )
如果您使用的是 .Net 3.5,则可以使用插件和可扩展性。看看这里:http: //msdn.microsoft.com/en-us/library/bb384241.aspx
也许你可以把强类型的dll放在gac中,最后做dll版本控制,这样旧版本总是可用的,新的只会被新编译的应用程序使用,旧的应用程序将使用它们的旧dll版本,直到它们被再次编译和部署。
希望这可能会有所帮助。