2008-09-10 12 views
2

ASP.NET Webアプリケーションをビルドすると、そのWebサイトのコードを含む.dllファイル(これは素晴らしい)が得られますが、Webサイトには.aspxファイルと友人もすべて必要です。これらは正しい場所に配置する必要がありますディレクトリ構造。各ビルドの結果として、どのようにしてこのすべてを1つのディレクトリに入れることができますか?ソースディレクトリから正しいファイルを選択しようとすると苦労します。ASP.NET Webアプリケーションビルド出力 - すべての展開ファイルを含めるにはどうすればよいですか?

最終結果はxcopy展開可能である必要があります。

更新:私が知っている公開コマンドを手動で使用する必要はありません。私は、アプリケーションが必要とするファイルの完全なセットをビルドアウトプットにすることを願っています。つまり、MSBuildから1か所でフルセットのファイルを取得します。

答えて

5

一つに見てお勧めするソリューションは、Webデプロイメントプロジェクト(WDPs)、アドオンのVisual Studio(およびMSBuildの)のためのように見えますWebプロジェクトをディレクトリに作成し、必要に応じてアセンブリをマージしてweb.configファイルを変更することができます。 WDP構築の出力は、サイトを1つのディレクトリに展開するために必要なすべてのファイルです。

以上のWebデプロイメントプロジェクトに関する情報:WDP 2008

  • ScottGu introduction to WDP 2005
  • ため

    1. Announcement on webdevtools MSDN blogこのソリューションの唯一の欠点は、上で利用可能でなければならないアドオンの要件ですビルドマシン。それでもまだ十分です!

    +0

    これは、ユーザー向けのWebアプリケーション/サイトのリリースまたはテストコピーを作成するために使用するものです。 – icelava

    0

    ソリューションエクスプローラでウェブサイトを右クリックし、[ウェブサイトを公開]をクリックしましたか?

    +0

    はい、私は手作業の手順としてそのようなWebサイトを公開できますが、ソリューションビルドの結果を残して配置アイテムをディレクトリに配置するソリューションを作成した結果が必要です。これはビルドマシン上のmsbuildを実行すると、私が望むものが得られることを意味します。 –

    +0

    自動ビルドスクリプトが必要な場合は、質問を更新する必要があります。 – GEOCHET

    +0

    完了したらうまくいけば十分だと思います。 –

    3

    ASP.NETにはがありません。 xcopy展開はです。新しいサイトです。これは、IISで仮想ディレクトリ/アプリケーションを使用するかどうかによって異なります。ただし、その仮想ディレクトリが作成されると、xcopyを使用して更新できます。

    +0

    そうですね、私は、すべてのファイルが適切な場所に存在することを前提にウェブサイトをインストールするpowershellスクリプトを用意しています。私がウェブサイトを更新したいとき、私は再びすべてのファイルを必要とし、それらを展開することができます。 –

    +0

    サイトを更新すると、サイトをVS経由で公開してからスクリプトを実行するまでの違いは何ですか? – GEOCHET

    +0

    私は社内イントラネット外で使用されているWebサイトを開発しています。つまり、サイトを顧客に持ち込んでそこにインストールする必要があります。私はまた、ビルドサーバーからサイトの公式ビルドをインストールしたい。 –

    0

    ビルド - >公開

    このプロセスをガイドするダイアログボックスが表示されます。

    0

    アップデートで説明し、自動構築するため、私はあなたがMSBuildCruiseControl.NET

    +0

    こんにちは、私はすでにプロジェクトをビルドするためにMSBuildを使用しています。これはCCNetのような内部システムによるすべてのチェックイン時に起動されます。問題は、プロジェクトのアセンブリだけがoutputディレクトリに置かれることです。つまり、.aspxファイルやその他のコンテンツはありません。コンテンツも必要です。 –

    1

    .netフレームワークディレクトリのaspnet_compiler.exeを使用してみましたか?私はあなたがWebアプリケーションやWebサイトの "展開準備"バージョンを作成できることを確信しています。

    +0

    ありがとうございます。私はそれを試してみましょう。 –

    1

    MSBuildの_CopyWebApplicationターゲットは、必要なものを正確に実行します。キャッチは、メインアセンブリだけがbinフォルダにコピーされるため、binフォルダの他のファイルもコピーするためにコピータスクが必要な理由です。

    この投稿の一部としてサンプルスクリプトを投稿しようとしましたが、できませんでした。

    私のブログでは、これと同じようなMSBuildスクリプトを作成する方法を説明しているarticleをご覧ください。

    0

    どのように複雑な解決策が必要なのかによって、スクリプトやジェンキンなどを使用することができます。 JenkinsでMSBUildを使用すると、IISに展開するだけで使用できます。 Jenkinsがあれば、後で他のツールを簡単に接続することができます。しかし、構築したいだけの場合は、MSDeployを使用するすべてのビルドをジェニンが実行するスクリプトを使用してください。

    これはちょうどあなたの感じを与えるために、私はそれを行う方法です。

    Sonarqubeは、あなたの評価指標を得るためにガッリオ、憲兵、FxCopの、Stylecop、NDepthsとPartCoverを使用し、SonarQubeこれを行うため、すべてこれはかなり単純ですあまり設定する必要はありません。

    ここにJenkinsの魔女のビルドとSonarメトリックの取得と、IISに自動的に展開するための別の仕事があります。私は私のMSBuildとURL、パスとユーザーを呼び出す単純なスクリプトを1行使用します。私のプロジェクトのための

    そしてSonarqube、すべてのメトリック。これは、単純なMVC4アプリですが、あなたはより多くの情報が私は良いガイドを提供することができますしたい場合、それは素晴らしい!:

    に動作します。

    このセットアップではMSBuildを使用していますので、アプリケーションをビルドして展開してください。

    関連する問題