我试图从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“.
UPDATE1:
我在我的笔记本电脑上试过它,它工作正常.我的笔记本电脑上安装了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>
更新:
如果你还没有我建议你使用安装项目安装你的项目,这将确保任何第三方dll自动被复制到根文件夹是否安装了应用程序.