在定义的目录中加载需要引用的程序集

时间:2012-11-29 14:09:48

标签: .net filesystems .net-assembly

场合

从文件加载任何模块(exe文件)程序集时,会发生错误,表示找不到此程序集所需的引用。 如果我在Windows资源管理器中启动程序集,则一切正常。

所需的引用似乎存在问题,因为它们位于子文件夹中。

结构看起来像那样

..\MainApplication.exe 
..\Plugins\Plugin01.exe (needs Interactivity.dll) 
..\Plugins\Interactivity.dll

问题

如何判断所需的Interactivity.dll引用不在主应用程序的根文件夹中,而是在与插件相同的文件夹中?

代码示例

Dim TAssembly As System.Reflection.Assembly TAssembly = System.Reflection.Assembly.LoadFrom(“C:\ MyProject \ Plugins \ Plugin01.exe”)

原始错误消息

{"Zeilennummer \"33\" und Zeilenposition \"18\" von \"Bei der Initialisierung von 
\"Microsoft.Windows.Controls.Ribbon.RibbonApplicationMenu\" 
wurde eine Ausnahme ausgelöst.\"."}

Die Datei oder Assembly "Microsoft.Windows.Shell, PublicKeyToken=31bf3856ad364e35" 
oder eine Abhängigkeit davon wurde nicht gefunden. 
Das System kann die angegebene Datei nicht finden.

1 个答案:

答案 0 :(得分:0)

您还可以将所需的程序集作为嵌入式资源放入程序中,然后使用AssemblyResolve事件将程序集传递给程序。只需确保您在开发时静态链接到实际的.dll,以便获得设计师和智能感知支持。