我有许多使用特定.dll程序集的.NET WinForm应用程序。推出此特定产品的公司偶尔会发布新版本。由于它们提供强名称程序集,我需要下载其.dll的新版本,但也要浏览我的每个应用程序并通过引用新的.dll文件重新构建它们。然后,我需要部署我的每个应用程序。这是一个很长的时间,文书工作和测试,所以我向这个.dll的制造商询问了一个解决方法。
他们给了我this Stack Overflow thread作为建议并说它会“完美地运作”。但是,我还没有想到这一点。
在我的应用程序中,我已将其添加到Program.cs:
RAISERROR('Error Occurred',0,0)
为了使其工作,我必须在其默认位置删除/重命名普通产品.dll文件,并将新版本放在根目录C:\目录中(如代码所示)。将.dll从其正常位置移除的原因是“AssemblyResolve”处理程序触发,因为无法找到引用的程序集。
无论如何,使用上面的代码,我的应用程序提供了以下异常:“尝试从网络位置加载程序集,这会导致程序集在以前版本的.NET Framework中被沙箱化。默认情况下,.NET Framework不启用CAS策略,“等等。
我到底错在了什么?有人甚至理解我想要完成的事情吗?我不敢相信以前没有这样做过,但我现在有点不知所措。
非常感谢任何帮助。谢谢。