1

Visual Studio 2012 / .NET 4.5でASP.Netを使用していますが、状況は次のとおりです。

CDASPControlという名前のWebControlから継承する抽象クラスを持つアセンブリがあり、それを継承する他のコントロール用のさまざまなヘルパーメソッドなどが含まれています。

そして、前述のコントロールを継承するCDASPGridというアセンブリがあります。

CDASPGridをWebページにドロップすると、コントロールが正常に追加され、問題なくページ登録ディレクティブが追加されます。

<%@ Register Assembly="CDASPGrid, Version=0.0.0.0, Culture=neutral, PublicKeyToken=" Namespace="Controls" TagPrefix="cdc" %>

<cdc:CDASPGrid ID="CDASPGrid1" runat="server" />

アプリケーションをコンパイルしようとすると、次のエラーが発生します。

タイプ'Controls.CDASPControl'は、参照されていないアセンブリで定義されています。アセンブリ'CDASPControl、Version = 0.0.0.0、Culture = neutral、PublicKeyToken='への参照を追加する必要があります。

参照には、CDASPGrid参照がありますが、CDASPControl参照はありません。

CDASPControl参照をWebサイトに手動で追加すると(違いが生じる場合はWebプロジェクトです)、コンパイルして正常に実行されます。

手動で追加しなくても、Webサイトに追加の参照を自動的に取得させる方法はありますか?

サードパーティのコントロールがこれを行うことに気づきました。たとえば、DevXPress ASP Gridviewコントロールは、必要に応じてweb.configに必要な参照を追加します。私がこれを達成する方法を学ぶことができるように、誰かが私を正しい方向に向けることができるでしょうか?

ありがとう。

4

1 に答える 1

0

したがって、結局のところ、これを手動で処理する必要がありました。EnvDTEアセンブリを使用して、コントロールデザイナーを介して設計時にプロジェクト参照を取得し、不足している参照をプロジェクト参照に追加することができました。また、web.configを変更して、コントロールデザイナを介してアセンブリをアセンブリリストに追加することもできました。

理想的な解決策ではありませんが、非常にうまく機能します。

これが私を道に導いた記事です: Webサーバーコントロールに必要なHTTPハンドラーを自動的に登録する方法

于 2012-12-18T18:48:49.703 に答える