2011-01-24 19 views
0

dllを参照するWebアプリケーションプロジェクトを引き継いだ。このソリューションには、実際のプロジェクトだけでなく、DLLの作成に使用されるクラスライブラリもあります。 Webアプリケーションを変更して本番環境に展開する必要があります。私は非常にまっすぐだったasp.netウェブサイトだけでなく、古典的なASPを展開するために使用して、ちょうどファイルをコピーします。.Net Webアプリケーションとコンパイル/デプロイ

私は、コンパイルと展開のプロセスを理解するのに助けが必要です。ここにいくつかの質問があります: 1)クラスライブラリ(DLL)が変更されました。私はそのクラスライブラリプロジェクトをコンパイルして、DLLだけを移動しますか? 2)Webアプリケーションプロジェクトが変更され、DLLが同じ状態を維持しました。どのファイルを移動しますか?

また、誰かが、展開時にDLLのバージョンがどのように処理されるかを明確にすることができます。私はDLLの登録を解除/登録する従来の方法を使用していますが、これは現在のケースではありません。私は同じボックスにDLLの複数のコピーを持つことについて心配しています。

ご意見やご感想をお寄せください。

ジャマル

答えて

0

プリコンパイルされた.netアプリケーションについて話しているようです。アプリケーションは、Aspnet_compiler.exeを使用してコンパイルされ、新しいDLLがホストにコピーされます。

DLLは登録する必要はなく、IISはプリコンパイルされた.netアプリケーションの処理方法を「知っています」。それはちょうどドロップ&アンド・ゴーです。 .aspxファイルを直接コピーするのとは異なります。

DLLのサブセット(クラスライブラリなど)を更新できます。アプリケーションの全部または一部をコンパイルできるいくつかのモードがあります。

+0

コードを変更せずにaspxファイルを変更する方法は、コンパイルするか、単にaspxを移動する必要がありますか? – Jamal

0

あなたは、多くの場合、DLLを変更回あなたがちょうどあなたが特定のバージョン番号によって参照されていないと仮定して、それをドロップすることができます。一般的に、安全な側にするために、私はDLLを変更するときにウェブサイト全体を再度コピーします。厳密には必要ではありませんが、あなたのウェブサイトがそれほど大きくない場合はおそらく最も簡単な方法です。

コンパイル済みのファイル(App_Codeフォルダ内の.aspx、.aspx.cs、.csファイル)に展開されていないファイルを変更する場合は、その特定のファイルを更新してIISを再起動してください。

0

そのような方法で手動でデプロイする場合、間違いを犯すのは非常に簡単です(関連ファイルのコピーを忘れる)。それは以前に私に起こった。

Visual Studioで公開機能を使用することをお勧めします。 ウェブアプリを右クリックし、コンテキストメニューから[公開]を選択することができます。私は通常、あなたのサーバーに直接公開することができるローカルフォルダに公開し、実際に展開するためにFileZillaなどのFTPクライアントを使用します(Visual Studioから直接展開するいくつかの問題がありました)。

FileZillaを使用してアップロードする場合、既存のファイルの上書きをどのように処理するかを指定できます。 私はオプションを使用します: 'ソースファイルを新しいものに上書きする'。そうすれば、展開は高速です(変更されたファイルのみが削除されます)。ファイルを見逃すこともないので安全です。

質問に答えてください: 1)はい、古いものとバイナリ互換性を保っている場合のみ、クラスライブラリを展開するだけで十分です(ここでは間違いがあります)。 2)変更されたファイル(dll、aspx、cshtmlなど)を展開する必要があります。クラスライブラリdllが変更されていない場合、それらを再デプロイする必要はありません。

上記の手順に従ってください。正常であるはずです。

+0

注: 'ソースファイルが新しい場合は上書きする'を実行すると、Visual Studioでパブリッシュフォルダの内容を削除しないようにしてください。そうしないと、更新されていないファイルが上書きされる可能性があります。 – Jimmy

+0

私がまだ苦労しているのは、DLLのバージョン管理部分です。私はより多くの研究を行いました。何がDLLバージョンとフォルダ(\ bin)から何をWebアプリケーションに伝えているようです。また、すべてのファイルを移動する予定ですが、プロジェクトがコンパイルされてから必要なファイルが何であるかを理解する必要があります。 – Jamal

0

一般に、依存するアセンブリが変更された場合、新しいアセンブリを展開することができます。ただし、そのアセンブリへのインタフェースのいずれかが変更された場合、またはWebアプリケーションに対応するその他の変更がある場合は、すべてを展開する必要があります。

つまり、依存アセンブリ内のコードが1行だけ変更されたとしても、完全な再コンパイル、デプロイメント、およびテストが必要なショップがあります。

完全な展開部分はかなり簡単です。

  1. ウェブプロジェクトを右クリックし、[公開]をクリックします。
  2. Webサーバーに直接公開する(これはお勧めしません)、またはローカルのディレクトリに公開します。
  3. プロダクションプッシュに必要な設定変更を行います。
  4. ローカルディレクトリに公開する場合は、コンパイルしたファイルを運用サーバーにコピーします。

プロダクションファイルを最初に削除してからコピーすると言う人がいます。新しいディレクトリにコピーし、新しいディレクトリにIISをrepointすると言う人もいます。あなたは何があなたのために働くのを見なければならないでしょう。

ここで、Webアプリケーションの1つは設定変換です。つまり、公開する環境に応じて、コンパイラに設定を変更させることができます。これらを研究して使用することを強くお勧めします。それは悪いプッシュをはるかに少なくする。

+0

プロジェクト全体をコンパイルせずにどのファイルを変更することができますか?私はaspxファイルがコンパイルされなければならない印象の下にあったが、今はそうではないと思っている。 – Jamal

+0

@Jamal:Webアプリケーションの場合、.aspxページ自体は、アプリケーションを再コンパイルせずに変更することができます。しかし、コードの背後に変更があった場合は、アプリケーションを再コンパイルする必要があります。さらに、javascript、images、cssなどのアーティファクトは、アプリケーションを再コンパイルせずに変更することができます。 – NotMe

関連する問題