2011-06-22 203 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