ClickOnceを使用して展開されるソリューションがあります。
これは、アプリケーション、いくつかの参照アセンブリ、およびSQLServerCompactデータベースで構成されています。
メインアプリケーションによって参照されないが、実行時に単にロードされるアセンブリもあります。このアセンブリは、アプリケーションバイナリと同じディレクトリに、アプリケーションと一緒にデプロイする必要があります。
コンパイル後に「プラグイン」アセンブリをUIプロジェクトの\bin\ debug(または\ bin \ release)ディレクトリにコピーするようにVisualStudioを設定しました。
次に、ファイルを参照としてではなく、単にファイルとしてUIプロジェクトに追加しました。ビルドアクションを「コンテンツ」に設定しました。これにより、UIプロジェクトの[プロパティ]/[公開]ダイアログに表示されます。
私が最初にアプリケーションを公開したとき、それは魅力のように機能しました。しかし、プラグインアセンブリを更新し、別のバージョン番号を付けて再度公開したところ、アセンブリが更新されていなかったのに、最初にアップロードされたものがまだ使用されていたことがわかりました。(事前にインストールされていないクリーンなコンピューターでも)。
調べてみると、アセンブリ(LibComposites.dll)が、clickonceアプリケーションがバイナリを格納するディレクトリとデータファイルを格納するディレクトリの両方にコピーされていることがわかりました。
どちらの場合も、最初に公開されたバージョンです。
概要として、いくつかのアセンブリを参照するアプリケーションがあります。
Control.exe参照->LibLLC.dll、LibDataLayer.dll、LibLLCExtenders.dll
は実行時にロードされます-> LibComposites.dll(LibLLC.dllも参照)
新しいバージョンのLibComposites.dllを、それぞれが公開するアプリケーションと同じディレクトリに展開する必要があります。
そのアセンブリの最初に公開されたバージョンがまだ使用されているのはなぜですか
公開するたびにLibComposites.dllを強制的に上書きするにはどうすればよいですか?