2011-06-22 227 views
2

我发现了一些代码来帮助我在一个项目中,当我第一次运行代码时,我收到一条错误消息,指出:“由于缺少调试目标c:\ path \'dirInfo.exe',Visual Studio无法启动调试。生成项目并重试,或者适当地设置OutPath和AssemblyName属性以指向目标程序集的正确位置。“如何修复这些C#错误?

然后,我选择确定并收到一条错误消息,指出部分缺失。我添加了部分代码并收到3条更多错误消息。

  1. 类型“RecursiveSearchCS.Form1”已经包含了一个定义,“组件”

    • 这是否意味着我应该删除这个从Form1.cs文件?
  2. 类型'RecursiveSearchCS.Form1'已经使用相同的参数类型定义了一个名为'Dispose'的成员。

  3. 类型'RecursiveSearchCS.Form1'已经使用相同的参数类型定义了名为'InitializeComponent'的成员。

(我注意到,当我注释掉的InitializeComponent线和/或处置线,越来越多的错误信息中的错误填充)

通过他们的方式,你可以找到的原代码@MicrosoftSite

任何帮助将不胜感激。

谢谢

回答

4

只是跟着感觉走的,如果你沿着以下和复制粘贴记住一个关键的事情:

的设计者创建创建表单时创建两个文件:“代码”文件和“设计器”文件。但是,当microsoft(和其他人)发布“模板”时,他们喜欢合并这两个文件。

只需创建一个新的.cs文件并粘贴代码,所有代码都应该很好。这是代码基本上说“在设计师,我们已经有这个东西”。 (注意这是一个好办法是“局部”的关键字位于您Form1声明之前)


更多信息:

代码文件将容纳所有自己的实现。这是点击事件,您个人覆盖的方法,绑定的事件等。当您从解决方案资源管理器或对话框本身选择“查看代码”时,这是默认文件。在这个文件是一个结构,它调用一个“隐藏”的方法,(InitializeComponent),如果你右击和“转到定义”将带您到下一个文件:

设计师文件是IDE的生成文件。这需要你在设计师中做的所有事情,并为你储存它。这包括新控件,控件的位置和属性以及IDisposable实现。这个想法是保持“肉马铃薯”,而你只担心执行。

+0

+1非常好的解释。 – JonH

+0

我是否应该使用或不使用Windows窗体应用程序创建新的.cs文件?我确实创建了新的.cs文件,但仍收到相同的错误消息。我应该从(复制和粘贴)代码文件中删除那些已经在设计器中的特定行吗? – Richell

+0

@CompGeekess:首先,从项目中删除现有的Form1.cs(和Form1.Designer.cs&Form1.resx)文件。接下来,右键单击您的项目并选择“添加新项目”。添加一个名为“Form1.cs”的新“代码文件”,然后单击确定。创建完成后,将演示中的代码粘贴到该文件中。然后,假设您的** Program.cs **正在尝试运行** Form1 **的实例,则应该满足并正确构建。 –

2

是的,它听起来像您复制整个代码,其中包括在部分班级已经包含在您的表格内的许多东西。或者删除这些或从表格中删除部分类和部分类声明摆脱这些错误

0

您在类中有重复的功能,您有一个已经使用该功能自动生成的文件。

1

我去微软网站看看你做了什么。该网站显示了整个“一个文件”解决方案的代码。我们都同意Visual Studio创建多文件解决方案,因此您复制代码。

我不知道当前的答案/评论是否帮助您获得此示例代码的工作,所以我想我会添加我的份额。我能够通过执行以下操作来获取此示例:

首先,Microsoft站点上的示例代码显示按钮,文本框,标签和组合框的声明,而不是试图复制该部分,我只是简单地使用工具箱并将工具箱中的按钮,标签,文本框和组合框拖到我的表单中。

你可能想要按照你的喜好来安排这些。

此过程正确地创建了我的表单,其上具有适当的对象。我所要做的只是为每个对象使用属性窗口,并根据它们在示例中命名的内容对其进行重命名。例如,我的新按钮原本是button1,但我将它重命名为btnSearch就像它在Microsoft示例中命名一样。

我注意到Microsoft示例具有Form1_load()事件的建立的事件处理程序设置。我通过单击设计器中的表单,单击属性,单击该属性中的事件按钮,然后双击“加载”事件,在我的表单中创建了相同的事件。这会自动生成适当的代码。我不得不创建btnSearch_Click()事件。我只需双击设计器中的按钮即可完成此操作。

之后,我所要做的就是从示例的特定部分手动复制并粘贴到我的代码中 - 使用示例中的内容填写Form1_Load()事件。复制DirSearch()方法。填写btnSearch_Click()事件。就是这样。

我希望这有助于解决整体问题,并让您更深入了解如何避免将来出现这些问题。

+0

我按照这个例子,仍然遇到了一些不同的错误。 - 名称'Directory'在当前上下文中不存在。 而我甚至在构建解决方案时收到该消息之前,我收到以下错误消息。 “Visual Studio无法启动调试,因为调试目标'path \ dirInfo.exe丢失'。请构建项目或重试,或者适当地设置OutPath和AssemblyName属性以指向目标程序集的正确位置。”我甚至不知道这些在哪里。 – Richell

+0

好的,我看到发生了什么事。在这里我需要添加使用System.IO ;.现在这个工作。我还需要添加其他一些内容,如日期,大小,文件名和路径,包括子目录。我希望这可以帮助我。对C#来说是新鲜事物,所以试图找到我所能做到的,并让这个项目完成并一路学习。谢谢!这真的有帮助。 – Richell

+0

对不起。我应该包括你需要添加额外的使用语句。 – Dan7el