24

共通の MasterPage を使用する必要がある 2 つの個別の ASP.NET Web アプリケーション プロジェクトがあるとします。

コードを複製せずにプロジェクト間で MasterPage を共有する最良の方法は何ですか? できれば、ソース管理やファイル システムのハッキングに頼る必要はありません。

4

7 に答える 7

11

私は同じことを達成しようとしています。いくつかの解決策を検討していますが、マスター ページを共有するには、おそらく仮想ディレクトリを使用するのが最善の方法だと思います。

ここにあなたが見ることができるいくつかのソースがあります.

記事の終わり近くにある 3 番目の箇条書きでは、Masterpages も共有できる方法について説明しています。

于 2008-12-17T19:36:53.040 に答える
4

K. Scott Allen のASP.Net Master Pages: Tips, Tricks, and Trapsの記事から、「マスター ページの共有」:

最初の方法は、共有マスター ページ ファイルを IIS Web サーバー上の 1 つの場所にコピーすることです。次に、各アプリケーションは仮想ディレクトリをサブディレクトリとして作成し、仮想ディレクトリがマスター ページの実際のディレクトリを指すようにします。その後、アプリケーションは、ページの MasterPageFile プロパティを、仮想ディレクトリの名前とマスター ページ ファイルの名前に設定できます。更新されたマスター ページ ファイルを実際のディレクトリにドロップすると、新しいマスター ページがすべてのアプリケーションにすぐに表示されます。

2 つ目の方法は、バージョン管理システムを使用して、一連のマスター ページ ファイルを複数のプロジェクトで共有することです。ほとんどのソース管理/バージョン管理システムは、ファイルまたはフォルダーを複数のプロジェクトに表示できる、ある程度の「共有」機能をサポートしています。開発者が更新されたマスター ページ ファイルをチェックインすると、他のプロジェクトはすぐに変更を認識します (ただし、この動作は通常構成可能です)。運用環境とテスト環境では、更新マスター ページを表示するには、各アプリケーションを再デプロイする必要があります。

最後に、ASP.NET 2.0 の VirtualPathProvider は、ファイル システムに存在しないファイルを提供できます。VirtualPathProvider を使用すると、すべてのアプリケーションが使用するデータベース テーブルに一連のマスター ページを配置できます。VirutalPathProvider に関する優れた記事については、「<a href="https://msdn.microsoft.com/en-us/library/aa479502.aspx" rel="nofollow noreferrer">コンテンツへのアクセスの仮想化: Web の提供」を参照してください。 ZIP ファイルからのサイト」。

于 2008-09-18T16:07:55.810 に答える
2

プライマリ コピーをソース管理に保持し、ソース管理システムに任せてください。

于 2008-08-27T19:00:22.130 に答える
0

異なるプロジェクト間で同じマークアップを使用したい理由がわかりません。そうする場合、簡単な方法がわかりません。

ただし、コードを使用すると、から継承するコードファイルを記述できることは明らかです。

System.Web.UI.MasterPage

そこにあるすべてのマスターページに必要なロジックを入力します。それを素晴らしいdllとしてビルドし、それをプロジェクトに含めます。

于 2008-09-18T16:12:29.760 に答える
0

シンボリック リンクを使用します。

シンボリック リンクは、別のファイル システム オブジェクトを指すファイル システム オブジェクトです。指し示されるオブジェクトは、ターゲットと呼ばれます。シンボリック リンクはユーザーに対して透過的です。リンクは通常のファイルまたはディレクトリとして表示され、ユーザーまたはアプリケーションがまったく同じ方法で操作できます。

于 2008-08-27T19:00:38.713 に答える
0

すべてのプロジェクトに共通のリポジトリ (たとえば、ソース管理ツリー内の共通フォルダー) を作成できると仮定すると、相対パスを使用してマスター ページをリンクとして追加できます。

ただし、IIRC、Visual Studio は、外部パスから追加されたファイルのローカル コピーを作成します。リンクされたファイルを追加するには、ソリューション/プロジェクト ファイルをテキスト編集する必要がある場合があります。

もちろん、これは「Web アプリケーション」形式を使用することを前提としています。古い VS "Web サイト" にはプロジェクト ファイルがなく、すべてのファイルがサイト フォルダー内にあることに依存しています。

于 2008-08-27T19:02:55.667 に答える
0

私の知る限り、あなたが探していることを行うエレガントな方法はありません.VSは常にそれをコピーしてしまいます。

正直なところ、それは良いアイデアではないかもしれません..明らかに、最も一般的なコードを共有したいのですが、MasterPage全体を共有したいですか?.以上のアプリケーション..

代わりに、優れた機能をコンポーネント/コントロールに分離して展開することをお勧めします。

于 2008-08-27T19:10:01.890 に答える