0

いくつかの静的メソッドを使用して Transactions という Sealed Class を作成し、正常にコンパイルしました。次に、すべてのメソッドの機能をテストするテスト プロジェクトを作成し、Sealed クラスの dll ファイルへの参照を追加しました。

テスト プロジェクトでクラスの名前空間を入力し始めると、IntelliSense によって参照が解決され、追加されます。

クラス名を入力することもでき、インテリセンスはクラスのパブリック メソッドとプロパティの完全なリストを提供しますが、プロジェクトをコンパイルしようとすると、「型または名前空間名 'Transactions' が見つかりませんでした (あなたはusing ディレクティブまたはアセンブリ参照がありませんか?)"

エラーをダブルクリックすると、コードの上部にある Namespace 参照が示されます。名前空間を削除すると、メソッド呼び出しにカーソルを合わせると疑問符が表示され、削除した名前空間を追加するように求められます。なに???

したがって、あるアカウントでは、コンパイル中に名前空間が見つからないと不平を言い、別のアカウントでは、名前空間を削除すると、メソッドの依存関係が認識され、元に戻すように求められます。私は文字通り岩と固い場所の間に立ち往生しています。

私の唯一の疑いは、問題の原因となっている Sealed クラスの使用です。別のクラス (Sealed ではない) を作成して同じメソッドを追加すると、問題が解決するからです。

考えやアドバイスをいただければ幸いです。これは .NET 4.0 フレームワークです

4

2 に答える 2

1

両方が同じ「フレーバー」のフレームワーク (クライアント プロファイル/完全なフレーバー、異なるバージョンのフレームワーク) を使用している場合は、プロジェクトのプロパティを確認してください。通常、これが問題の原因です。

于 2012-10-06T18:48:16.747 に答える
1

わかりましたので、問題を理解しました。テスト アプリは自動的に .NET 4 クライアント プロファイルを使用するように設定されていることがわかりました。これは、System.Web への依存が原因でトランザクション dll への参照を解決できないという警告の 1 つに気付いたときにわかりました。

参照を追加しようとしたとき、参照を見つけることができず、使用可能なアセンブリの結果が .NET 4 クライアント プロファイルに基づいてフィルター処理されていることがわかりました。アセンブリ (.NET 4.0) のプロファイルと一致するようにプロファイルを変更した後、必要な参照を System.Web アセンブリに追加し、コードを問題なくコンパイルできました。

私にとってのこの経験の教訓は、環境内で提示される警告を当然のことと見なさないことです。ほとんどの場合、それらは無視される可能性がありますが、実際にはエラーの解決にも役立つ場合があるためです。

この投稿が他の人の助けになることを願っていますが、投稿したときに誤った推定をしていたため、質問のタイトルが誤解を招く可能性があります.

ありがとう

于 2012-10-06T18:53:09.640 に答える