3

我知道这真的不是一个聪明的问题,但我在理解 Visual Studio 2010 的某些工作时遇到了一些麻烦。

对 Windows 窗体进行编程我需要将包含在主命名空间和程序集中的源文件(比如说:x.cs)文件中的类(比如说:x 类)移动到不同的项目(和程序集)中命名空间。后者是一个旨在收集实用程序类的 dll。可能我以错误的方式做到了这一点。

症状是:在主窗体(代码,而不是设计)中,将鼠标悬停在 X 类的构造函数上按 F12 会导致显示“来自元数据”的新源,包括类声明(但我仍然可以打开源代码单击鼠标右键并选择“显示源代码”)。VS 似乎无法在解决方案中找到正确的源代码。

我的问题:

  1. 如何从 F12 点恢复到正确的方法?
  2. 更一般地说,在不同项目和/或程序集中移动代码的正确方法是什么?
4

1 回答 1

2

我刚刚尝试复制所描述的问题,但对我来说效果很好。让我描述一下我采取的步骤,也许你会发现你在哪里做了不同的事情。

  1. 创建新的解决方案。
  2. 添加名为 FormsApp 的新 Windows 窗体应用程序。这给了我一个名为 Form1 的表单,其默认命名空间为 FormsApp。
  3. 在 FormsApp 项目中名为 util.cs 的文件中创建了一个名为 Util 的类。它获得与 FormsApp 相同的命名空间。
  4. 如果我在 Form1 构造函数中创建 Util 类的实例,我可以按 F12 以按预期将其带到 Util 的定义中。
  5. 在解决方案中创建了一个名为 Utility 的新类库。
  6. 可以通过多种方式移动文件,但我只是在解决方案资源管理器中单击 util.cs 文件并将其拖到实用程序项目中。这将复制文件,但保留原件。也许您以不同的方式复制了文件?
  7. 删除原始文件后,如果您尝试编译,应该会收到构建错误。这是意料之中的,因为 FormsApp 项目对新添加的 Utility 项目中的 Util 类一无所知。
  8. 在解决方案资源管理器的 FormsApp 项目中添加对 Utility 项目的引用。
  9. 如果您现在尝试构建,那么它应该会成功。尽管我没有更改 Util 类的命名空间,但在 Form1 构造函数中按 F12 会按预期将我带到 Util 类的定义。

如果它有助于澄清事情,这里有几张图片:

解决方案资源管理器:

解决方案资源管理器

Form1 构造函数:

在此处输入图像描述

实用类:

在此处输入图像描述

于 2013-01-14T16:51:54.730 回答