2016-02-11 20 views
9

ClickOnceでアプリケーションをデプロイしていて、ClickOnceデスクトップアイコンをクリックしてアプリケーションを起動すると、起動したときよりもアプリケーションの起動が遅く(少なくとも30〜60秒以上かかる) .exeから直接。 私はそれが未知の問題(Slow startup of Clickonce winforms application after update)ではないことを見ましたが、まだ解決されていないようです。 なぜそれが起こるのか、それをどうやって解決するのだろうと思っています。ClickOnceデプロイメントを使用したアプリケーションの起動が遅い

私は1台のマシンしか使用していないので、マシン関連ではなく、ウイルス対策関連ではないと思います。

起動時に異なるメモリ管理パターンに気づいています.ClickOnceの展開に時間がかかり、しばらくしてメモリが割り当て解除されます。 まだ12メガバイトの相違があります(67MBのClickOnce、50のダイレクト.exe)。

これは...私がそれを機械関連、ウイルス対策関連ではないではないと思う

おかげ

+2

アプリケーションの開始後に更新を検索するようにclickonceを設定してみましたか? – Pikoh

+0

こんにちは、コメントありがとうございます。 いいえ、私は試していません。私は、更新プログラムの検索が最初の小さなポップアップ(ユーザーに更新プログラムを探していることを通知する)の後に終了すると考えました。 私は確かにそれを試してみましょう! – Massimo

+0

@Pikohいいえ、パフォーマンスの変更はありません(最初の更新部分を削除する以外) – Massimo

答えて

2

をナットを駆動しています。

あなたのクライアントがdev VMに持っているのと同じアンチウイルスをインストールすることによってその仮説を証明する必要があります。スロースタートアップを再現できない場合は、マシン間でProcMonのトレースを比較してください。

私はハンスはお金であり、あなたは、あなたの質問に参照 QAで正解ごととしてアンチウイルスは、最も可能性の高い犯人であると信じてい

私は非常に見てきました新しく展開された最初の実行.Netアプリケーションのパフォーマンスが悪い(数秒対数秒)。ウイルス対策ツールが新しくチェックされているため、ユーザーはウイルス対策ソフトウェアを実行している。


は、.NET Framework 3.5のSP1を使用するか、上記の「スタートアップの領域でのパフォーマンスが大幅に向上がある。特に、WPFアプリケーションと」とし、3.5 SP1は、スプラッシュ画面を備えていることを確認します。

スプラッシュスクリーンは、迅速な(一時的な)修正プログラムです。悲しいかな、理想的な解決策ではありません。


ClickOnceのは今かなり古くなっていると、なぜ、このようなWindowsインストーラやアプリで更新メニューとして、さまざまな展開機構を別の戦略を採用していない、この分野での進歩の多くがありました。 MSIインストーラをInstall to same path when upgrading applicationにする手順を詳しく説明します。

ClickOnceの代わりに最新のバージョンを使用しているすべての人に厳しいものにしたい場合は、新しいバージョンがリリースされたときに、Webサービスを起動してダウンロードして実行する方がよいでしょう。

また、この分野のGoogleからヒントを受け取ります。あなたはジェフ・アトウッドの記事を覚えている:http://blog.codinghorror.com/the-infinite-version/

enter image description here

あなたはClickOnceのを使用していけない場合は、NGENとbsdiff、おそらくはGoogle courgetteのようなものを使用することができます。


ClickOnceアプリケーションdiscussed hereの起動を高速化する他のいくつかの方法があります。


これは直接あなたの質問に答えられないかもしれないが、うまくいけば、それは根本的な原因を特定し、および/またはアップデートをロールアウトするための別のよりアップ-DO-日付メソッドを使用する方法についての思考のためにあなたの食べ物を与えます。

+0

こんにちは、本当にうれしい、歓迎する答えですが、私はデスクトップのクリックアイコンをクリックするとフードの下で何が行われているのかまだ分かりません。 clickonceアプリケーションがクリックされ、展開された.exeの実行の間に実行されるアクション。 私はClickonceのデプロイメントをデスクトップのWin7 PCでテストしました。可能性のあるすべてのウイルス対策とWindows UACは無効になっていましたが、問題は変わりません。 2つのモード間で異なるメモリ負荷(速度差、私は推測する)を引き起こしているのは何ですか? 残念ながら私は展開方法を変更できません:(。 – Massimo

+0

一度インストールした後、COデスクトップアイコンで起動時間がはるかに短くなったことを確認できますか?CLRプロファイラを使用してGen2の大きなチャンクを調べると、 –

+0

また、アプリケーションの2回目の実行時(インストール後)に、アプリケーションを開いたときに多くのIOが発生していますか?ProcessMonitorのFileMonトレースを使用することができますIO活動を見るために..愚かな質問ですが、すべてのDLLとEXEをバージョン番号で設定していますか?それはビルド番号、CDなしのワイルドカードを使用していませんか? –

0

ビルドを公開するときは、オフラインモードでアプリを実行するオプションを選択してください。そうしないと、ClickonceインストーラはローカルEXEではなくサーバーからアプリを起動しようとします。

他のシナリオを検討する必要がある場合や、これが役立つ場合はお知らせください。

ありがとう、

+0

「アプリケーションはオフラインでも利用可能(起動メニューから起動可能)」にチェックされています ありがとう – Massimo

+0

クリックイベント関連のイベントがキャプチャされていることを確認してください。 –

+0

私はクリックイベントに関連していますか? – Massimo

関連する問題