0

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を強制的に上書きするにはどうすればよいですか?

4

3 に答える 3

4

わかりました、私は同じ問題を抱えていました。これが私がそれを解決する方法です(理想的ではないかもしれませんが、うまくいきます。

1) dll またはファイルがソリューション内にある場合は、それを削除して再度追加します。2) プロジェクトのプロパティ内に移動し、[発行およびアプリケーション ファイル] を選択します。そこにファイルがあり、再び「含める」を選択する必要があります(自動のものではありません...)。

以上、新品で掲載させて頂きます。そうしないとうまくいかない理由はわかりませんが、パブリッシュごとに、最後のバージョンを取得できるようにこれらの手順を実行する必要があります...

于 2008-11-04T12:56:56.177 に答える
0

Visual Studio の発行機能を使用して、ClickOnce パッケージを作成および配置していますか?

頑張ってください。

Mage を使用して独自の ClickOnce パッケージを作成する方がよい場合があります。

私は Visual Studio の道をたどり始めましたが、すぐにそれが惨めな道であることがわかりました。Mage の使用方法を学び、これを "自動化" するための MSBuild オプションのいくつかを見てください。

于 2008-11-04T12:57:20.340 に答える
0

同じ問題がありました。問題は、アプリケーションのルート ディレクトリに dll があり、それらがプロジェクトに「含まれている」ことでした。

解決策は簡単です。プロジェクトから dll ファイルを除外するだけで、この問題は解決します。

于 2015-08-10T21:57:11.957 に答える