したがって、(一見) 突然、私のプロジェクトはコンパイラ警告 1685 を受け取り始めます。
定義済みの型 'System.Runtime.CompilerServices.ExtensionAttribute' は、グローバル エイリアスの複数のアセンブリで定義されています。「c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll」の定義を使用
当惑した私は、MSDN の記事を調べてその原因を突き止めました。私が見つけた情報は次のとおりです。
Visual C# リファレンス: エラーと警告コンパイラ警告 (レベル 1) CS1685
エラー メッセージ 定義済みの型 'System.type name' は、グローバル エイリアスの複数のアセンブリで定義されています。「ファイル名」の定義を使用
このエラーは、System.int32 などの定義済みのシステム型が 2 つのアセンブリで見つかった場合に発生します。これが発生する 1 つの方法は、.Net Framework バージョン 1.0 と 1.1 を並べて実行しようとするなど、2 つの異なる場所から mscorlib を参照している場合です。
コンパイラは、アセンブリの 1 つのみからの定義を使用します。コンパイラはグローバル エイリアスのみを検索し、/reference で定義されたライブラリは検索しません。/nostdlib を指定した場合、コンパイラは Object を検索し、その後、Object が見つかったファイル内の事前定義された型のすべての検索を開始します。
今、私は本当に頭を悩ませています。
私は 2 つの異なるバージョンの .NET Framework を実行していません (2.0 と 3.5 を数えない限り)。
疑わしいと思われる奇妙なアセンブリについては言及していません。
この変更に拍車をかけるような変更をアプリケーションに加えた覚えはありません。
すべてのコンポーネントが .NET Framework バージョン v2.0.50727 をターゲットにしていることを確認しました。
これを修正する方法についての提案やアイデアをお待ちしています。私は警告をエラーとして扱います。
それについて本当に私を悩ませているのは、なぜそれが起こっているのかわからないということです. 起こったことには明確な原因が必要であり、なぜそれが起こったのかを知る必要があります。説明できない場合、正確に修正することはできません。当て推量は決して満足のいくものではありません。
このアプリケーションは簡単で、クラス ライブラリと Windows フォーム アプリケーションで構成されています。
データベース アクセスをカプセル化する基本機能を提供する AC# クラス ライブラリ DLL。この DLL は、次のコンポーネントを参照します。
- システム
- System.Core
- System.Core.Data
- System.Data
- System.Data.DataSetExtensions
- System.Data.OracleClient
- System.Drawing
- System.Windows.Forms
- System.Xml
- System.Xml.Linq
UI を提供する AC# Windows フォーム アプリケーション。このアプリケーションは、次のコンポーネントを参照します。
- クリーンコード
- CleanCodeControls (これらは両方とも構文エディターのサポートを提供し、.NET 3.5 に対してローカルにビルドされます)。
- リンクブリッジ
- Roswell.Framework (上記のクラス ライブラリ)
- システム
- System.Core
- System.Data
- System.Data.DataSetExtensions
- System.Data.OracleClient
- System.Deployment
- システムデザイン
- System.Drawing
- System.Windows.Forms
- System.Xml
- System.Xml.Linq
さらに情報が必要な場合はお知らせください。喜んで提供いたします。