为这个狡猾的问题道歉 - 如果有人有更好的建议,很高兴重新措辞。
我试图通过动态调用属于另一个应用程序的程序集来创建一个对象。
以下 PowerShell 代码对我来说效果很好:
[Reflection.Assembly]::LoadFrom("C:\Program Files\Vendor\Product\ProductAPI.dll")
$bobject = new-object ProductAPI.BasicObject
$bobject.AddName("Some Name")
我正在努力在 C# 中做同样的事情。根据 StackOverflow 上的其他帖子,我目前有这个:
System.Reflection.Assembly myDllAssembly =
System.Reflection.Assembly.LoadFile("C:\\Program Files\\Vendor\\Product\\ProductAPI.dll");
System.Type BasicObjectType = myDllAssembly.GetType("ProductAPI.BasicObject");
var basicObjectInstance = Activator.CreateInstance(BasicObjectType);
最后一行导致 TargetInvocationException。
{“无法加载文件或程序集 'AnotherObject, Version=1.2.345.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。系统找不到指定的文件。”
似乎 BasicObject 构造函数正在尝试调用 AnotherObject(来自同一文件夹中的 AnotherObject.dll)但找不到它。
关于如何解决这个问题的任何提示?