2 つの asp.net サイトがあります (episerver に基づく)。
Telerik Asp.net コントロールの使用。
両方のサイトで利用できるようにしたい機能がいくつかあります。
現在、サイトの 1 つは webparts/usercontrols を使用し、もう 1 つのサイトは usercontrols を使用しています。
これらのサイト間で機能を共有する方法はありますか?
私が望むのは、サイト間でユーザー コントロールを共有できるようにすることです。
2 つの asp.net サイトがあります (episerver に基づく)。
Telerik Asp.net コントロールの使用。
両方のサイトで利用できるようにしたい機能がいくつかあります。
現在、サイトの 1 つは webparts/usercontrols を使用し、もう 1 つのサイトは usercontrols を使用しています。
これらのサイト間で機能を共有する方法はありますか?
私が望むのは、サイト間でユーザー コントロールを共有できるようにすることです。
ユーザー コントロールについて話しているので、ユーザー コントロールの一部である .ascx ファイルもあると想定しているため、これが難しくなっています。
理想的な解決策は、アセンブリを参照するだけですべてをサーバー コントロールに移動することだと思いますが、.ascx ファイルを使用する他のコントロールから継承している場合は、それらに固執します。
これを処理する 1 つの方法は、Visual Studio のファイル リンク機能 ([既存のファイルを追加]、下向き矢印をクリック、リンク オプションを選択) を使用して、同じソリューション内のプロジェクト間で同じ物理ファイルを共有することです。展開前に ascx ファイルが両方のサイトにコピーされていることを確認する必要があるため、これは理想的ではありません (以前にビルド後のスクリプトで実行したことがあります)。
より技術的に複雑な別のオプションですが、おそらくそれを処理する「より良い」方法は、仮想パスプロバイダーを使用して作業を行うことです。 これは、仮想パスプロバイダーを使用して、やりたいことを実行する方法について説明している記事です。
新しいクラス ライブラリ プロジェクトを開始し、両方のサイト プロジェクトでそのプロジェクトを参照してから、共通のコントロールとコードをライブラリ プロジェクトに引き出します。
前述のように、ファイルをライブ環境の VPP ディレクトリに置くことができ、その方法では、ASCX ファイルを 1 つのフォルダーにコピーして 2 サイト コード インフロント アップデートを行うだけで済みます。ただし、コード ビハインドの更新では、両方のサイトで DLL をビルドして上書きする必要があります。
開発環境で SVN を使用している場合は、プロジェクトの 1 つから svn:external リンク フォルダーをセットアップすることもできます。そうすれば、コードとそのリビジョン履歴だけを 1 つのリポジトリに格納できます。