c# - 为什么这个 reqpro40.applicationclass 实例创建失败?

标签 c# .net interop objectinstantiation

我正在尝试从 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);
    

代码编译得很好,但运行时(我写了一个简单的单元测试),它失败说 “无法加载文件或程序集 '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/

相关文章:

c# - ChildWindow (Silverlight) 设计问题标题上的按钮

c# - 使用 AspNetCore.OData 7.2.1 GetRouteData 始终为 null

c# - 相当于库 (DLL) 的 'app.config'

c# - 在 WebBrowser 控件中将字符串数组从 JS 传递到 C#

javascript - Dart polymer Google Picker

创建位图时 C# 内存不足

C# Windows 窗体控件到图像?

c# - 如何修复开关运算符中的错误

c# - LINQ 到 SQL : how to select specific fields conditionally into DTOs (performance)

asp.net-mvc - ASP.NET MVC 应用程序中的 "Bad binary signature"