現在、DotNetNuke モジュールのプロジェクトをセットアップしています。このプロジェクトには、ASP.NET 4.0 と C# を使用して TFS でバージョン管理されたユーザー コントロール ファイルがいくつかあります。
現在、プロジェクトは問題なくビルドおよび実行されます。ただし、プロジェクト内の一部のユーザー コントロールのフロント エンド .ascx ファイルに変更を加えると、対応する .ascx.designer.cs で次のエラーを示す ~14 個のエラーが生成されます。
エラー ## タイプ 'ControlClass' には、'SomeControlID' 'Location of ControlName.ascx.designer.cs' の定義が既に含まれています
これまで、この問題を引き起こす可能性があると考えられる他の変更は行っていません。私のプロジェクトでランダムに発生し始めました。
私は次のことを試しました:
- .ascx.designer.cs を削除 => プロジェクトを選択 => [Web アプリケーションに変換] を選択して、デザイナー ファイルを再生成します。これにより、常に同じエラーが表示されます。
- IIS をリセットします。ASP.NET 一時ファイルを削除します。手動でソリューションをクリーンアップして再構築します。これも同じエラーを再現します。
- プロジェクトからユーザー コントロールを削除します。同じ名前の新しいユーザー コントロールを追加します。建てる。コードを新しいコントロールの前面と背面にコピーします。その後、再構築します。同じエラーを再現します。
奇妙なことに、これがある種の構文の問題であるかどうかを判断しようとしたときに、次のことを行い、これらの結果を生成しました。
- すべての変更を元に戻し、TFS で作業中のバージョンに戻します。
- プロジェクトをビルドします。エラーはありません。すべて問題なくビルドされます。
- フロント エンドの .ascx ファイルの末尾にスペースを追加します。
- プロジェクトをビルドします。すべてのエラーが再び再現されました。
- 何もしなかったと判断したら、CTRL + Z を押して、正常に戻っていることを確認します。
- プロジェクトを再構築します。すべてのエラーが再び再現されました。
理由はわかりませんが、このプロジェクトでいくつかの選択したユーザー コントロールが変更されるたびに、デザイナー ファイルがこれらのエラーで突然生成されます。
これらのユーザー コントロールには、他のコントロールなどでいっぱいのテンプレートを含む複雑なコントロールが含まれています。ただし、これらを作成するときに、異なるテンプレートで名前が同じであるなどの問題はありませんでした。
私はアイデアを使い果たし、この問題をオンラインで検索しても他に試してみることができませんでした.
助言がありますか??
編集: プロジェクトがビルドされるように、余分に生成されたコントロールを手動で削除することをお勧めします。これをより深く調べた後、これには2つの問題があります。
まず、これによりプロジェクトをビルドできますが、ASCX を削除して別の変更を加えた後、コントロール宣言が戻ってくるため、ASCX を更新するたびにこれを行う必要があります。
第二に、これによりプロジェクトを問題なくビルドできます。実行されませんが、代わりに次のランタイム エラーがスローされます。
基本クラスにはフィールド「btnDelete」が含まれていますが、そのタイプ (System.Web.UI.WebControls.ImageButton) はコントロールのタイプ (Telerik.Web.UI.RadButton) と互換性がありません。
このエラーは、ビルド時に「重複」エラーとしてマークされていた、これをテストするために削除した「btnDelete」コントロールが、正しくないタイプとしてマークされていることを示しています。
これは、ユーザー コントロールにさまざまな種類の「btnDelete」ボタンが複数あり、エラーが発生しているためだと思います。これらのボタンは、編集/削除テンプレートの異なる RadGrid コントロールに含まれています。