3

情况

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

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

结构看起来是这样的

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

问题

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

代码示例

将 TAssembly 调暗为 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.
4

1 回答 1

0

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

于 2013-01-20T16:59:03.483 回答