Итак, (на первый взгляд) неожиданно мой проект начинает получать предупреждение компилятора 1685:
Предопределенный тип
'System.Runtime.CompilerServices.ExtensionAttribute'
определяется в нескольких сборках в
глобальный псевдоним; используя определение
из 'c: \ Program Files \ Reference
Сборки \ Microsoft \ Framework \ v3.5 \ System.Core.dll '
Озадаченный, я исследовал статью MSDN, чтобы выяснить ее причину. Вот информация, которую я нашел:
Справочник по Visual C #: ошибки и
Предупреждение компилятора предупреждений (уровень 1)
CS1685
Сообщение об ошибке Предопределенный тип
«Имя System.type» определено в
несколько сборок в глобальном
псевдоним; используя определение из файла
Имя '
Эта ошибка возникает, когда предопределенный
Тип системы, такой как System.int32,
найдено в двух сборках. Один способ это
может произойти, если вы ссылаетесь
mscorlib из двух разных мест,
например, пытаясь запустить .Net
Framework версии 1.0 и 1.1
бок о бок.
Компилятор будет использовать определение
только из одной сборки.
компилятор ищет только глобальные псевдонимы,
не ищет определенные библиотеки
/ссылка. Если вы указали
/ nostdlib, компилятор будет искать
для объекта, и в будущем начать
все поиски предопределенных типов в
файл, в котором он нашел объект.
Теперь я действительно чешу голову.
Я не работаю два разных
версии .NET Framework
(если не считать 2,0 и 3,5).
Я не ссылаюсь ни на какое странное
сборки, которые могут сделать меня
подозрительными.
Я не помню, чтобы в моем приложении были какие-либо изменения, которые бы стимулировали это изменение.
Я проверил, что все компоненты предназначены для .NET Framework версии 2.0.050727.
Я открыт для предложений или идей, как это исправить. Я воспринимаю предупреждения как ошибки, и это сводит меня с ума.
Что меня действительно беспокоит, так это то, что я не знаю почему это происходит. Вещи, которые случаются, должны иметь видимую причину, и я должен знать, почему они произошли. Если я не могу объяснить это, я не могу точно исправить это. Угадайка никогда не бывает удовлетворительной.
Приложение простое, состоит из библиотеки классов и приложения Windows Forms.
Библиотека DLL класса C #, обеспечивающая базовую функциональность инкапсуляции доступа к базе данных. Эта DLL ссылается на следующие компоненты:
- System
- System.Core
- System.Core.Data
- System.Data
- System.Data.DataSetExtensions
- System.Data.OracleClient
- System.Drawing
- System.Windows.Forms
- System.Xml
- System.Xml.Linq
Приложение C # для Windows Forms, предоставляющее пользовательский интерфейс. Это приложение ссылается на следующие компоненты:
- CleanCode
- CleanCodeControls (оба из них предоставляют поддержку редактора синтаксиса и локально созданы для .NET 3.5).
- LinqBridge
- Roswell.Framework (библиотека классов выше)
- System
- System.Core
- System.Data
- System.Data.DataSetExtensions
- System.Data.OracleClient
- System.Deployment
- System.Design
- System.Drawing
- System.Windows.Forms
- System.Xml
- System.Xml.Linq
Дайте мне знать, если вам нужна дополнительная информация, и я с удовольствием предоставлю ее.