2012-09-10 23 views
7

Webサイト用のビルドシステムを作成して、ワンクリックでビルドを実行できるようにしようとしています。ソースコードリポジトリからコードのクリーンコピーを取得し、msbuildを使用してAspNetCompilerタスクを実行して、Webサイトのすべてのプリコンパイルを実行します。AspNetCompilerタスクのVirtualPathプロパティが必要な理由

私に混乱を招くことは、VirtualPathまたはMetabasePathを指定する必要があることです。私はメタベースのパスを持っていません - 私はそれをローカルディレクトリにコンパイルして、選択されたサーバ(つまり、devサーバを最初に起動し、その後サーバを稼働させる)に展開できます。

VirtualPathは、複数の場所に同じコードを展開できるようにするのが難しいです。コードでは、いくつかのコンテキストと設定の詳細を使用してSiteIDを調整して別の情報を表示します。

似たような行(例えばVirtualPath in AspNetCompiler MSBuild Task - does it have to be equal to the final deployed Virtual Path?)には他にもさまざまな質問がありますが、私が見つけた唯一の答えはもっと逸話的なようです。つまり、彼らの経験に違いはないと言います。

しかし、私は本当に違いがないとは思いません。これが使用される状況がなければなりません。そうでなければ、そこには存在しないので、必要ではありません。

これは誰でも知っている(できれば参照がある)のですか?作成された仮想パスをタスクに渡すことによって、どのような問題が発生する可能性がありますか?

答えて

2

Visual Studioでサイトを公開する場合は、このデータを入力する必要はありません(実際には、これまでどのオプションも見たことがありません)。私はそれがMS-Build構成で必須であることに驚いています。

Visual Studioで使用されているものを「リバースエンジニアリング」したいと思うかもしれませんが、私の推測ではスラッシュ「/」などとなります。

これは、仮想パスプロバイダーまたはリソースプロバイダーを使用して、事前にコンパイルされたWebサイトの周囲にあるissuesと関係している可能性があります。

+0

ええ、私も非常に驚いています。そして私は、どのようにビジュアルスタジオが何をリバースエンジニアリングに行くのか分からない。 Visual Studioが使用しているものを検索することが困難なために、そのプロパティがどのようなものであるかを知らなくても。どのように私がそれを行うかもしれないかについてのいかなる提案も感謝するでしょう。 – Chris

+0

Visual Studioで、[ツール] - > [オプション] - > [プロジェクトとソリューション](見つからない場合は、[すべての設定を表示]チェックボックスをオンにします) - > [ビルドして実行]を選択します。その後、出力の冗長性を診断に設定します。出力ウィンドウ(Ctrl-Alt-O)を開いてビルドを実行します。私はこのマシンにウェブサイトを持っていない、または私は素早く見ていただろう。 –

+0

それは素晴らしい選択肢であり、私が抱えていたいくつかの他の問題のデバッグに役立つかもしれません。残念ながら、プリコンパイルの段階では、完全な診断出力が得られないようで、通常の 'ビルドディレクトリ '/ MSReporting/App_Code /'タイプのものには特別なデバッグ出力(パラメータの使用など)はありません。 :( – Chris

0

Visual Studioは、VirtualPathプロパティに単一のバックスラッシュを使用します。生成される完全なコマンドライン文字列は、このようになります。

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v \ -p C:\src\Web\WebApplication1\obj\Release\AspnetCompileMerge\Source C:\src\Web\WebApplication1\obj\Release\AspnetCompileMerge\TempBuildDir 
関連する問題