我正在尝试从c#类代码中打开一个ReqPro项目。接下来的步骤是:
创建一种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"
。
UPDATE1:
我在笔记本电脑上试了一下,它运行正常。我的笔记本电脑上安装了ReqPro。但它不适用于服务器(Windows 2008 Enterprise)。我使用远程连接连接到服务器。任何线索?
赏金更新
我期望一些工作代码可以重新创建步骤。
答案 0 :(得分: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>
更新: 如果你还没有我建议你使用安装项目安装你的项目,这将确保任何第三方dll自动被复制到根文件夹是否安装了应用程序。