2

我在 Visual Studio 中遇到了一个没有任何意义的构建错误:

命名空间“My.Project”中不存在类型或命名空间名称“MyService”(您是否缺少程序集引用?)

命名空间MyService在 Web 参考中定义。在对象浏览器中,我可以清楚地看到该名称空间和其中定义的所有类。Web 参考中的任何代码都没有编译错误。

将框架目标从 2.0 更改为 3.5 后,代码停止编译。为什么编译器会窒息,我该如何解决这个问题?我已经尝试更新网络参考,但问题仍然存在。我什至尝试将生成的“Reference.cs”中的代码注释掉,并将代码复制到项目中的另一个代码文件中,仍然没有看到命名空间。

我的项目引用以下内容:

系统 2.0.0.0
系统数据 2.0.0.0
System.EnterpriseServices 2.0.0.0
System.Net 3.5.0.0
系统.Web.服务 2.0.0.0
System.Xml 2.0.0.0

更新

不仅仅是我的 Web 服务生成的代码存在编译问题;对于所有转换为 .NET 3.5 的项目,我无法引用它们的命名空间。

我仍然不确定为什么会发生这一切,但我找到了解决方法;通过将 a 添加using Ns = My.Project.MyService到我的代码中,我能够使用Ns.MyType.

4

1 回答 1

1

这显然被记录为 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\Reference Assemblies\Microsoft\Framework\v3.5 复制到 C:\Program Files\Reference Assemblies\Microsoft\Framework\v3 来利用帖子中记录的解决方法。 0。然后我重新启动了 Visual Studio。

仅此一项并不能解决问题。复制程序集后,我不得不重做从 2.0 到 3.5 的项目转换。新转换后,代码按预期编译。在解决方案前后对项目文件进行比较并没有发现任何实质性差异,因此生成错误一定是由于 Visual Studio 的某些内部状态造成的。

于 2011-02-25T17:10:54.340 回答