2017-01-24 13 views
1

VSTSを使用して構築するASP.NET Webサイトを含むソリューションがあります。現在私はMSBuildでビルドしていますが、ファイルをコピーするとエラーが発生します。ほとんどが私のApplication_Startが起動しません。展開せずにASP.NETを公開する

私のWeb.Configが「コンパイル」されていない可能性があります。私がオンラインで読んだことは、私が自分のウェブサイトを「公開」する必要があるからです。問題は、私はただのものを構築して、リリースプロセスでデプロイメントを処理したいだけです。

からにどこかに展開する必要なしに、公開された出力を生成する(またはApp_startの問題を発生させる)方法を教えてください。

私はビルドとリリースにVisual Studio Team Servicesを使用しています。

+1

ウェブデプロイパッケージの構築はどうですか? – Hackerman

+3

それをあなたのローカルファイルシステムに公開することができます。これにより、どこかのWebサーバにコピーする必要がある出力が得られます。 – David

+0

@Hackerman正直なところ、それが何であるかわからない、私は前にASP.NETプロジェクトを "公開"する必要はなかった。/ – Chris

答えて

1

私の経験は、VSFSと機能的に同じであると信じられているTFSです。

ビルドエージェントがビルドごとにいくつかのフォルダと作業ディレクトリを持つ:

  • - Build.ArtifactStagingDirectoryを - 構築アーティファクトが行くところです。 Build.BinariesDirectory - - Build.SourcesDirectory - - 構築バイナリは
  • の行くべき場所であるステップは、自動的にこのディレクトリ
  • Bにコピーします構築「をコピーし、成果物を作成公開」これをソースコードがプルダウンされた場合であります
  • TestResults - Common.TestResultsDirectory - テスト結果が格納されます。

出力をビルドバイナリディレクトリにコピーするようにMSBuildに指示できます。私が使用する引数は、展開可能なファイルシステム(XCopy/Robocopy展開可能)出力とWeb Deploy出力の両方を作成します。私はファイルシステムの展開可能な出力を好む。

Visual Studio Buildステップを作成し、これらをMSBuild引数として使用します。彼らのいくつかはあなたにあまり適用されないかもしれないことに注意してください、実験してください。

/p:SkipInvalidConfigurations=true /p:DeployOnbuild=True /p:GenerateProjectSpecificOutputFolder=true /p:GenerateBuildInfoConfigFile=false /p:OutDir=$(Build.BinariesDirectory) /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false 

この結果は、Build.BinariesDirectory\<project name>\_PublishedWebsitesになります。そこから、ファイル・システム・デプロイ用のコピー・ルート$(Build.BinariesDirectory)\<project name>\_PublishedWebsites\<project name>を使用して、ビルド・アーティファクトのコピーおよびパブリッシュ・ステップを作成します。

その後、リリースのために、そのビルドアーティファクトの内容をサイトディレクトリのルートにコピーします(おそらくその都度、既に存在するものはすべて削除してください)。 [Clean Target]オプションでWindows Machine File Copyの手順を使用します。

私はWeb Deployを気にする必要はありません。ファイルシステムの展開はgood enough for Stack Overflowのようです。

+0

答えをありがとう、私は/ a/b/sのフォルダが何を意味するのか分からなかった! – Chris

+0

1つのプロジェクトのみを公開するにはどうすればよいですか?私は私のソリューションの中に複数あるが、現時点で公開したいのはただ一つだ – Chris

+0

@Chris代わりにMSBuildのビルドステップに切り替え、プロジェクト名を渡す必要があると思う。ビルド成果物をコピーして公開するステップを経て、アーティファクトで終わるものを制御するので、すべてのプロジェクトをビルド/パブリッシュすることは気にしません。 – mason

関連する問題