質問

ClickOnceを使用して展開されるソリューションがあります。

アプリケーション、複数の参照アセンブリで構成されます およびSQL Server Compactデータベース。

メインアプリケーションによって参照されないアセンブリもありますが、 ただし、実行時にロードされるだけです。このアセンブリは、次と共に展開する必要があります アプリケーション、アプリケーションバイナリと同じディレクトリ。

"プラグイン"をコピーするようにVisual Studioを設定しました\ bin \ debug(または\ bin \ release)へのアセンブリ コンパイル後のUIプロジェクトのディレクトリ。

次に、ファイルをUIプロジェクトに追加し、 参照としてではなく、単にファイルとして。ビルドアクションを" Content"に設定します。これは UIプロジェクトの[プロパティ] / [公開]ダイアログに表示される方法。

アプリケーションを最初に公開したとき、それは魅力のように機能しました。 しかし、その後、プラグインアセンブリを更新し、別のバージョン番号を付けました アセンブリが更新されていなかったが、最初の アップロードされたものはまだ使用されていました。 (事前にインストールされていないクリーンなコンピューターでも)。

掘り下げてみると、アセンブリ(LibComposites.dll)がコピーされていることがわかりました clickonceアプリケーションがバイナリを保存する両方のディレクトリ データファイルを保存するディレクトリとして。

どちらの場合も、最初に公開されたバージョン。

概要では、いくつかのアセンブリを参照するアプリケーションがあります:

  

Control.exeの参照->   LibLLC.dll、LibDataLayer.dll、   LibLLCExtenders.dll
  でロード   ランタイム-> LibComposites.dll(これは   LibLLC.dllも参照しています)

LibComposites.dllの新しいバージョンを同じディレクトリに展開する必要があります それぞれ公開するアプリケーションとして。

なぜそのアセンブリの最初の公開バージョンがまだ使用されているのか

どのようにしてLibComposites.dllをすべてのパブリッシュによって強制的に上書きできますか?

役に立ちましたか?

解決

さて、私は同じ問題を抱えていました。解決方法は次のとおりです(理想的ではないかもしれませんが、機能します。

1)dllまたはファイルがソリューション内にある場合、私はそれを取り外して再度追加します。 2)プロジェクトのプロパティ内に移動し、「公開およびアプリケーションファイル」を選択します。そこにファイルを用意し、AGAIN" Include"を選択する必要があります。 (自動ではありません...)。

新しいもので公開できるようになります。私がそれをしないとなぜ機能しないのか分かりませんが、各パブリッシュ、私はこれらの手順を実行して最後のバージョンを取得する必要があります...

他のヒント

これを正しくさせてください:Visual Studioの発行機能を使用してClickOnceパッケージを作成および展開しますか?

それで頑張ってください。

Mageを使用して独自のClickOnceパッケージを構築

私はVisual Studioのルートを開始しましたが、すぐにそれが悲惨さへの道であることを発見しました。 Mageの使用方法を学び、「自動化」のためのMSBuildオプションのいくつかを見てください。これ。

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

ソリューションは簡単です。dllファイルをプロジェクトから除外するだけで、この問題はなくなります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top