8

コードに小さな変更を加える必要がある場合など、発行に関する多くの問題に直面しました。生成された DLL ファイル (たとえば、default.aspx.CS発行されたときの dll ファイル) が IIS によって認識されず、コードビハインドが間違っているなどの理由で認識されないことがあります。正確なエラー メッセージを思い出せなくてすみません。この時点で私が何を意味するかを理解していただければ幸いです。

Copy Pasteそのため、通常は公開ではなく簡単な操作を行います。

Publish メソッドを使用しないことで何が不足しているのか教えていただけますか? パブリッシングはどのように優れていますか? またはどちらが好きですか、なぜですか?

基本的には長所と短所の状況です。

ありがとうございました

4

2 に答える 2

16

まあ、それは「コピー」が何を意味するかによって異なります。

アプリケーションのすべてまたは一部にオプションPublishingがあります。(ターゲット/ホストの代わりに) ファイル システムのローカル フォルダーに移動し、更新されたファイルをコピーpre-compileすることができます (のみ)。「コード ビハインド」(c#/vb コード) の変更を行っている場合、これはおそらく「コピー」/上書きするだけでよいことを意味します。言うまでもなく、「コンテンツ」の変更 (html/razor/script/etc) を変更した場合は、それらもコピー/上書きする必要があります。publishdlls

展開に慣れていない場合は、「すべて」をコピー/上書きするのが最も安全な方法であることに気付くかもしれません。経験を積むと、更新する必要があるアセット ( dlls「すべて」ではなく、1 つまたはいくつかのコンテンツ コード) のみが「認識」されます。publishedこれには魔法はありません。通常は、 (ローカルで) またはrebuildWeb アプリケーションを実行した後に、dll/ファイルのタイムスタンプを確認するだけです。

サーバーで実際に何が必要かを確認できるようにすることをお勧めしlocal publishます。ローカル ファイル システム/フォルダーに公開されたファイルは、ホスト/サーバーに必要なものです。そうすることで、そこにある「謎」を視覚化して削除しPublishingます。

  • (サーバー上で)実際に必要なものとそうでないものを確認できます
  • ファイルのタイムスタンプが表示されるので、実際に変更されたファイルと変更されていないファイル (したがって、更新する必要がないファイル) を認識するのに役立ちます。
  • 一度コツをつかめば、「すべて」を「コピー」/ftp する必要はなく、実際に変更されたファイル (のみ) を更新するだけです。

(vb/cs)html/cs/vbしたがって、「コピー」は上記を意味する場合があります。または、すべての開発コード ( raw ) をホストに単純にコピーすると言っている場合、それは、サイトがdynamically compiled各リソースが必要/要求される (何もないpre-compiled) ことを意味します。また、「簡単」ですが、失わpre-compilationれます。つまり、各 Web ページが要求されたり必要になったりするときに遅延が発生します (ASP.net は動的にコンパイルする必要があります)。さらに、サーバー上のソース コードも公開しています。状況によってはあまり意味がないかもしれませんが、もう1つ考慮すべきことがあります。

プリコンパイルとオプションの詳細については、こちらをご覧ください。

于 2012-12-31T15:14:09.673 に答える
6

aspx ページとその aspx.cs コード ビハインド ファイルを検討すると仮定すると、サイトを展開する 3 つの代替方法があります。

  1. 両方をiisにコピーできます。aspx は最初の要求で .cs にコンパイルされ、次に両方の .cses が一時的な .dll にコンパイルされます。
  2. iis に「公開」できます。これにより、コード ビハインド クラスが .dll にコンパイルされますが、aspx はそのままコピーされます。aspx は .cs に変換され、最初の要求で .dll に変換されます。
  3. サイトを「公開」してから、aspnet_compiler を使用して手動でプリコンパイルできます。公開すると、以前のようにコード ビハインドが .dll にコンパイルされますが、プリコンパイルでは、.aspx ファイルの内容が削除され、コンパイルされたコードがさらに別の .dll に移動されることで、.aspx ファイルが消去されます。

3 つのモデルすべてに長所と短所があります。

1 つ目は、段階的に更新するのが最も簡単ですが、同時に不要な変更を最も受けやすいものです。

2 番目も簡単で、vs から呼び出すことができます。サーバーでの不要な変更の可能性を閉じますが、.aspxses は最初の要求でコンパイルする時間が必要です。

3 つ目は、時間といくつかの手動アクションが必要ですが、アセットのコンパイルが必要ないため、変更を防ぎ、サイトのウォームアップを高速化します。共有環境に最適です。

于 2012-12-31T16:00:02.823 に答える