6

どうすればいいのですか?してはいけない理由はありますか?

私のDLLには約13MBのWinFormClickOnceアプリがあるので、定期的に更新する必要はありません。

DevExpress(3)、Microsoft ReportViewer、MicrosoftSQLレプリケーション。MicrosoftSQLSMO。

ClickOnceアプリに含まれていない場合、プログラム全体が約1.5 MBで受信され、リモートサイトのVPN接続が制限されているため、実際にそこに配置する必要があります。アプリを少し変更するたびに、ネットワークを介してすべてのユーザーに15MBを送信することはできません。

ありがとう


明確にするための更新

明確にするために; ClickOnceを使用してDLLをGACにインストールしたくありません。ClickOnceは、私のメインアプリが使用する必要があるものです。ClickOnceアプリからその13MBのDLLを削除し、すべてのローカルシステムで使用できるようにインストールしたいと思います。

GACなしでこれを達成できれば、素晴らしいです。メインのアプリトリマーが必要なので、更新します。

4

6 に答える 6

7

@kanadの応答を拡張しています...

13MBのdllは、ユーザーがアプリケーションを初めてインストールしたときにのみダウンロードされます。これはClickOnceの大きな利点の1つであり、ユーザーは変更されたファイルをダウンロードするだけで済みます。

ただし、紛らわしいのは、ClickOnceの進行状況ダイアログには、アプリケーション全体をダウンロードしていなくても、アプリケーションのサイズ全体が常に表示されることです。私はこれが事実であることを確認するために広範なテストを行い、帯域幅モニターを使用してそれを自分自身に証明しました。

最後に、Webサーバーを制御できる場合は、ClickOnceアプリケーションの圧縮を有効にすることを検討することをお勧めします。ダウンロードサイズを大幅に削減するのに役立ちます。圧縮は設定するのがちょっと面倒ですが、この記事で始めることができます。ただし、ここでも、圧縮されたサイズはClickOnceの進行状況ダイアログに反映されません。

最善の方法は、ClickOnceの進行状況ダイアログに表示される番号を無視することです:)

于 2009-07-09T13:59:09.810 に答える
4

ClickonceはGACにファイルをインストールできません。これを行うには、MSIまたは昇格された特権を作成する必要があります。

一般に、特定の問題を解決しない限り、GACは避ける必要があります。インストールサイズはClickOnceのダウンロードよりも苦痛ですか?ユーザーは50Kモデムまたは高速LANを使用していますか?

クリスセルズは、GACを避けるべき理由についての素晴らしい記事を掲載しており、他にもさまざまなスタックオーバーフローの投稿があります。ここここ、ここを参照してください。

一日の終わりに、あなたは賛否両論を評価し、何が最善の行動方針であるかを決定する必要があります。

于 2009-07-08T19:04:33.970 に答える
4

これが私が過去にしたことであり、それは私にとってうまくいきました。ClickOnceアプリに、GACでこれらの依存関係のいくつかを探してもらいます。実際、アプリケーションがロードされるたびにチェックします。依存関係がGACにあるかどうかを確認するために、存在する単純なファイルを使用します。依存関係が欠落している場合は、依存関係が欠落しているというメッセージと、それを修正する方法についての説明を表示します。次に、GACに依存関係をインストールする自己解凍型exeをシェルアウトしてダウンロードします。少しルーベゴールドベルゲンですが、私にとっては驚くほどうまくいきました。

私は、予見可能な将来のサードパーティの制御などのために静的になるものだけをGACに入れます。

私には、MS Reporting、Infragistics、SMOなどのかなりファットクライアントがあり、週に1回程度展開します。これは約3.5MBです。私たちの用途の多くは非常に遠隔地にあり、インターネットにアクセスできるデータカードを使用しています。

于 2009-07-08T20:57:27.097 に答える
3

他の答えは正しいですが、ClickOnceプロセスの外部でGACにdllをインストールし、これらをダウンロードしたくない場合は、ClickOnceが直接の質問に対処するためにDLLを1回だけダウンロードします(変更されていない場合)。 ClickOnceを介したDLLは、次のことを実行できます。

ClickOnce->アプリケーションファイル設定内でそれらを前提条件に設定することにより、ClickOnceダウンロードからそれらのDLLを除外します。

これを行うと、ClickOnceランタイムはダウンロード前にGACをチェックし、それらのDLLが存在することを確認します。

于 2009-07-09T14:10:06.863 に答える
2

グーグルによると、ここでもありません。

MSIインストーラーの作成など、代替のインストーラーツールを調べる必要があります。奇妙に聞こえますが、インストールサイズに取り組む最初のアイデアは、2つのインストーラーを用意することです。1つはユーザーが1回だけ実行する必要があるGACに依存関係をインストールするためのもので、もう1つは実際のアプリケーションをインストールするためのインストーラー(ClickOnceを使用できると思います)です。この方法を使用すると、理論的には、今後のすべてのアプリの更新について、より小さなClickOnceデプロイメントに依存することができます。

于 2009-07-08T19:10:46.080 に答える
2

毎回15MB全体をダウンロードするかどうかをどうやって知ることができますか。クリックワンスダイアログボックスには常にその旨が表示されますが、実際にはすべてのファイルがダウンロードされるわけではなく、マニフェストでハッシュが変更されたファイルのみがダウンロードされます。それを考えると、更新チェックのために別のURLを使用してCDから展開する方法があります。このようにして、初めてCDからインストールし、それ以降、アプリは公開されたサイトから自分自身のみを更新できます。

于 2009-07-08T21:38:56.967 に答える