Модульное тестирование проекта 3.5 в VS2010 выдает предупреждения CS1685 - PullRequest
5 голосов
/ 03 марта 2011

У меня есть проект в разработке, нацеленный на .NET 3.5.У меня нет выбора по этому поводу, так как корпоративные большие парики не позволят нам ориентироваться на 4.0.Я добавил новый тестовый проект в решение в Visual Studio 2010. Я вижу, что могу ориентироваться только на 4.0 Framework из тестового проекта (что нормально, потому что он не развернут).

Все отлично, кромечто я получаю предупреждения компилятора из моих тестовых проектов:

warning CS1685: предопределенный тип 'System.Action' определен в нескольких сборках в глобальном псевдониме;используя определение из 'c: \ Program Files \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Core.dll'

Я удалил ссылку на System.Core из тестового проекта и предупреждениевсе еще происходит.Я могу только предположить, что это потому, что проект, который я тестирую, нацелен на 3.5, поэтому что-то пересекается.Есть ли ЧИСТЫЙ способ устранить это предупреждение, пока мы не получим одобрение для цели 4.0 в наших приложениях?

1 Ответ

5 голосов
/ 03 марта 2011

Похоже, вы используете MSTest в качестве основы для модульного тестирования. Если это так, то проблема в том, что MSTest не поддерживает нацеливание вниз в Visual Studio 2010. Это означает, что он будет загружать версию 4.0 .NET-сборок версии 4.0, даже если проект, который вы тестируете, нацелен на 3.5. Это вызывает конфликты, которые вы видите из-за нескольких версий System.Core, которые загружаются в этом сценарии.

К сожалению, нет способа обойти эту проблему, кроме как обновить ваш проект до 4.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...