プリズム付きのWPFプロジェクトがあります。基本的にサブフォルダ(PrismModules)に格納されているモジュールを動的にロードしています。ClickonceでプロジェクトのDLLの宛先としてサブフォルダを指定する方法はありますか?
アプリケーションは正常に動作しますが、ClickOnceで展開しようとすると、出力パス構造が無視され、 "PrismModules"サブフォルダの代わりにすべてがルートフォルダに格納されます。その後、アプリケーションはそれらのモジュールをロードしません。
これはClickOnceの展開の制限ですか?
Solution
- WpfClient
- PrismModules
- Module A
- Module B
- Module C
彼らはすべて同じルートディレクトリに組み込まれている、モジュールA/B /:
EDITは
少しにより多くの情報を与えるために、ここでどのように解決策を構造化されていますCはサブフォルダPrismModules
にあります。
WpfClientはいずれのモジュールも参照していないため、実行時にPrismModules
というフォルダをスキャンし、実装が含まれているすべてのDllをロードします(IModule
)。私が気づいた何
:
参照されているいくつかのDLLは、(私たちが何かを設定することはできません(とないPrismModules
フォルダ内の)ルートに入れ、そして唯一の動的にロードされているものも存在していないされていますClickOnceのメニューでそれら。サブフォルダPrismModulesを作成し、それがあなたのモジュールのDLLへのをリンクとして追加(ClickOnceので展開されている)あなたの主なプロジェクトで
私のdllはこのディレクトリに作成されたばかりのプロジェクトです – J4N
プロジェクトの構造を理解していません。説明できますか? – dvorn
私が理解していないこと:私のDLLを更新すると、それらを再度コピーしなければならないということですか?それはデバッグで動作しますか? – J4N