4

我正在尝试从 c# 类代码打开一个 ReqPro 项目。遵循的步骤是:

  1. 添加对 ReqPro.dll 的引用(可扩展性 COM dll)
  2. 创建一个 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);
    

代码编译得很好,但是在运行时(我写了一个简单的单元测试),它说"Could not load file or assembly 'Interop.ReqPro40, Version=1.10.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.":"Interop.ReqPro40, Version=1.10.0.0, Culture=neutral, PublicKeyToken=null".

更新1:

我在笔记本电脑上试了一下,效果很好。我的笔记本电脑上安装了 ReqPro。但它不适用于服务器(Windows 2008 Enterprise)。我使用远程连接连接到服务器。有什么线索吗?

赏金更新

我希望有一些工作代码带有重新创建的步骤。

4

1 回答 1

2

请在服务器上检查 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 在安装应用程序后自动复制到根文件夹。

于 2011-06-27T19:21:14.350 回答