9

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

私を混乱させているのは、VirtualPath または MetabasePath を指定する必要があることです。メタベース パスがありません。それをローカル ディレクトリにコンパイルして、選択したサーバー (最初に開発サーバー、次にライブ サーバー) に展開できるようにしたいだけです。

同じコードを複数の場所にデプロイできるようにしたいので、VirtualPath は注意が必要です。コードは、コンテキストと構成の詳細を使用して SiteID を計算し、異なる情報を表示します。そのため、単一の仮想パスを指定するのは賢明ではないようです。

同様の線に沿って他にもさまざまな質問があります (たとえば、AspNetCompiler MSBuild タスクの VirtualPath - 最終的にデプロイされた仮想パスと同じにする必要がありますか? ) ですが、私が見つけた唯一の答えは、より逸話的であるように思われます-つまり、それらは jsut です彼らの経験に違いはないようだと言います。

しかし、それが本当に違いがないということは信じられません。これが使用される状況があるに違いありません。

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

4

2 に答える 2

2

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

Visual Studioが使用するものは何でも「リバースエンジニアリング」したいかもしれませんが、私の推測では、それは単一のスラッシュ「/」またはそのようなものになるでしょう。

そうは言っても、この要件は、仮想パス プロバイダーまたはリソース プロバイダーを使用してプリコンパイルされた Web サイトに関する問題に関係している可能性があります。

于 2012-10-01T00:26:23.267 に答える
1

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 
于 2016-06-07T15:02:47.403 に答える