我正在尝试从 C# 类代码打开 ReqPro 项目。遵循的步骤是:
- 添加对 ReqPro.dll(可扩展性 COM dll)的引用
创建一个 ReqPro40.Application 类型并拥有一个 ReqPro40.ApplicationClass 实例,如下所示:
ReqPro40.Application appReqPro = new ApplicationClass(); ReqPro40.Project prjReqPro; prjReqPro = appReqPro.OpenProject(@"D:\MyReqPro\MyReqPro.rqs", ReqPro40.enumOpenProjectOptions.eOpenProjOpt_RQSFile, "admin", "admin", ReqPro40.enumProjectFlags.eProjFlag_Normal, ReqPro40.enumRelatedProjectOptions.eRelatedProjOption_ConnectNone);
代码编译得很好,但运行时(我写了一个简单的单元测试),它失败说 “无法加载文件或程序集 'Interop.ReqPro40, Version=1.10.0.0, Culture=neutral, PublicKeyToken= null' 或其依赖项之一。系统找不到指定的文件。":"Interop.ReqPro40, Version=1.10.0.0, Culture=neutral, PublicKeyToken=null"
。
更新1:
我在我的笔记本电脑上试过了,效果很好。我的笔记本电脑上安装了 ReqPro。但它不适用于服务器 (Windows 2008 Enterprise)。我使用远程连接连接到服务器。有什么线索吗?
赏金更新
我会期待一些带有重新创建步骤的工作代码。
最佳答案
请在服务器上检查 ReqPro.dll 在根文件夹中,有时引用的 dll 不会复制到 bin 文件夹中。您还可以在 app.config 文件中指定一个“探测”元素,以指定 CLR 可以搜索的子文件夹,以便在找不到程序集时找到引用的程序集。
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schmas-AWorks-cam:asm.v1">
<probling privatePath="bin\Ordersbin;Extbin"/>
</assemblyBinding>
</runtime>
</configuration>
更新: 如果您还没有,我建议您使用安装项目来安装您的项目,这将确保任何第 3 方 dll 自动复制到已安装应用程序的根文件夹。
关于c# - 为什么这个 reqpro40.applicationclass 实例创建失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6176000/