Пространство имен веб-ссылок, не видимое компилятором Visual Studio 2010 после преобразования проекта из 2.0 в 3.5 - PullRequest
2 голосов
/ 24 февраля 2011

Я получаю ошибку сборки в Visual Studio, которая не имеет никакого смысла:

Тип или имя пространства имен 'MyService' не существует в пространстве имен 'My.Project' (выотсутствует ссылка на сборку?)

Пространство имен MyService определено в веб-справке.В обозревателе объектов я четко вижу это пространство имен и все классы, определенные в нем.Нет ошибок компиляции для любого кода в веб-справочнике.

Код перестал компилироваться после того, как я изменил цель фреймворка с 2.0 на 3.5.Почему компилятор может задохнуться, и как я могу исправить это?Я уже пытался обновить веб-ссылку, но проблема остается.Я даже попытался закомментировать код в сгенерированном «Reference.cs» и скопировать код в другой файл кода в проекте, а пространство имен все еще не было видно.

Мой проект ссылается на следующее:

System                     2.0.0.0
System.Data                2.0.0.0
System.EnterpriseServices  2.0.0.0
System.Net                 3.5.0.0
System.Web.Services        2.0.0.0
System.Xml                 2.0.0.0

Обновление

Проблемы, возникающие при компиляции, возникают не только в моем веб-сервисе;для всех проектов, преобразованных в .NET 3.5, я не могу ссылаться на их пространства имен.

Я до сих пор не уверен, почему все это происходит, но я нашел обходной путь;добавив using Ns = My.Project.MyService к своему коду, я смог ссылаться на типы в пространстве имен с помощью Ns.MyType.

1 Ответ

1 голос
/ 25 февраля 2011

Это явно задокументировано как ошибка в Visual Studio:

https://connect.microsoft.com/VisualStudio/feedback/details/570557/targeting-net-framework-3-5-actually-targets-3-0-gac

Я использовал обходной путь, описанный в посте, скопировав System.Web.Extensions.dll из C: \ Program Files \ Ссылочные сборки \ Microsoft \ Framework \ v3.5 в C: \ Program Files \ Ссылочные сборки \ Microsoft \ Framework \ v3.0. Затем я перезапустил Visual Studio.

Одно это не решило проблему. Мне пришлось переделать преобразование проекта с 2.0 на 3.5 после того, как сборка была скопирована. После нового преобразования код скомпилирован, как и ожидалось. Выполнение различий между файлом проекта до и после обходного пути не выявило существенных различий, поэтому ошибки сборки, возможно, были вызваны некоторым внутренним состоянием Visual Studio.

...