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 ファイルで "Probing" 要素を指定して、アセンブリが見つからない場合に CLR が参照されているアセンブリを見つけるために検索できるサブフォルダーを指定することもできます。

<configuration>
   <runtime>
       <assemblyBinding xmlns="urn:schmas-AWorks-cam:asm.v1">
           <probling privatePath="bin\Ordersbin;Extbin"/>
       </assemblyBinding>
   </runtime>
</configuration>

更新: まだセットアップ プロジェクトを使用してプロジェクトをインストールすることをお勧めしません。これにより、アプリケーションがインストールされている場合、サード パーティの dll がルート フォルダーに自動的にコピーされます。

于 2011-06-27T19:21:14.350 に答える