わかりました。2つの質問があります。ここでピクルスになって1週間います。
重要-これをビルドまたは実行するアプリケーションはありません。特定のフォルダに配置されるのは単一のクライアント側dll(他のいくつかのdllを参照する)であり、regasmなどを使用してこのdllを登録する必要があります。
概要:
だから私はac#COMScannerController.dllを書いています。ScannerControllerは、c:\ Program Features \ etc ....全体のフォルダーに既にインストールおよび登録されている5つのサードパーティdllを参照します(場所は、使用しているソフトウェアのバージョンによって異なりますが、dllは同じ。)
この1つのdll(integration.ActiveX(アセンブリ))には、InstalledPathというメソッドがあります。InstalledPathは、実行中のアセンブリの実際の場所を返します。dllが完成したら、IExplorerを実行すると、正しい「../programfeatures/....」が返されていました。
次に、別のコンピューターでセットアップするために、登録を解除してから、いくつかのregasmsを実行し、dllを「Scanner / bin / debug / integer.ActiveX」(oleviewは依存関係を見つけることができないと言っています)に登録したので、登録を解除しましたそれはvs2012でビルドされ、IExplorerから実行すると、InstalledPathは「../bin/debug/」になります。新しいプロジェクトを作成し、それを自動登録してビルドし、iexplorerから実行すると、InstalledPathは「..Scanner-fake / bin /debug/」になります。cmdで何百万回も登録を解除しましたが、何をしても、登録されたScannerControllerのデバッグフォルダーを常に指しているようになりました。
質問1:
regasmなどを使用してCOMScannerController.dllを登録し、ScannerControllerが参照する5つのサードパーティdllを指すようにするにはどうすればよいですか?
質問2:
Integration.dllがコンピューターのローカルパスに存在しない場所に修正しようとしたので(ビルドしているため)、ローカルコピーをfalseに設定しました。ビルドしてoleviewで表示すると、依存関係をロードまたは検出できないと表示されます。コピーlocal=falseを使用して、参照が他のサードパーティのdllを見つけることができるように、プロジェクトを設定するにはどうすればよいですか?
長い質問で申し訳ありませんが、読んで私を助けようとしてくれてありがとう。私はこれを高低で検索しましたが、今は精神的に疲れています。