0

System.Web.UI.UserControl を拡張するだけの通常の .cs ファイルを使用してこれを行い、コントロールを含むプロジェクトのアセンブリを他のプロジェクトに含めました。また、1 つのプロジェクトで .ascx ファイルを作成し、プロパティ->ビルド イベント->プレビルド イベントで指定したフォルダーからすべての ascx ファイルをコピーしました。

今、私がやりたいことは、これら2つの組み合わせです。1つのプロジェクトでビルドしたascxファイルを他のすべてのプロジェクトで使用できるようにしたいのですが、コピーするのではなく、アセンブリ参照を使用してそれらを含めたいですそれは私がやりたいことを達成するためのゲットーな方法のように見えるので、それらを私の「二次」プロジェクトに追加します。はい、動作しますが、あまりエレガントではありません。

これが可能かどうか誰かに教えてもらえますか?もしそうなら、これにアプローチする最善の方法は何ですか?

4

3 に答える 3

0

この記事: http://webproject.scottgu.com/CSharp/UserControls/UserControls.aspxには、開発中に必要なコントロールをコピーできるビルド前の便利なアイデアがあります。

$(SolutionDir)\MyUserControlLibrary*.ascx $(ProjectDir)\UserControls\ をコピーします。

于 2010-10-25T04:38:17.903 に答える
0

この質問は既に回答済みですが、クライアントの 1 人が SiteFinity を使用しており、コンパイル済みの dll ファイルを使用してユーザー コントロールを提供し、それを CMS システムで構成しています。私が知る限り、それは非常にうまく機能します。

これを行うには、asp.net Web サイト (Web アプリケーションではない) でユーザー コントロールを作成し、プリコンパイルおよび "固定アセンブリ名を使用" オプションを使用してサイトを公開します。次に、ascx ファイルに関連付けられた dll をクライアントに配布し、必要に応じてインポートします。

于 2010-10-25T04:41:39.400 に答える
0

基本的に、ユーザー コントロールはプロジェクト間で共有されることを意図したものではありませんでした。プロジェクト間で再利用可能なコントロールを作成する場合は、他のプロジェクトから簡単に参照できる DLL にコンパイルされるサーバー コントロールを作成する必要があります。

カスタム ASP.NET サーバー コントロールの開発

于 2010-05-02T15:08:09.710 に答える