2010-06-21 21 views
82

這讓我瘋狂。源文件與構建模塊時不同

我有一個相當大的項目,我試圖修改。我之前注意到,當我輸入DbCommand時,visual studio沒有對它做任何語法高亮顯示,而我正在使用System.Data.Common

即使沒有突出顯示,該項目似乎在我的瀏覽器中運行良好。所以我決定運行調試器,看看事情是否真的有效。

每次沒有做突出顯示的類被調用時,我會得到"the source file is different from when the module was built"消息。

我清理了這個解決方案並重建了幾次,刪除了tmp文件,按照這裏的所有方向Getting "The source file is different from when the module was built.",重新啓動了網絡服務器,但它仍然告訴我源文件在顯然不同時是不同的。

因爲這個,我無法測試我今天編寫的任何代碼。

  • 如何才能不同於二進制當我剛剛編輯 它呢?
  • 有什麼辦法可以將一些感覺敲入視覺工作室,或者我只是想念一些東西?
+0

對不起,如果這是多少。短版本: 我編譯我的程序,然後嘗試調試它,Visual Studio告訴我我的源文件(我剛剛編譯)與我剛剛構建的模塊不同。我只想知道它爲什麼認爲 – frustratedcoder 2010-06-21 18:42:55

回答

4

有些事情對你的檢查:

你有雙重檢查你的項目引用?

你有沒有Visual Studio啓動的Web服務器仍在運行?檢查系統托盤中,尋找與齒輪圖標頁面(可能有不止一個):

alt text http://blogs.msdn.com/blogfiles/webdevtools/WindowsLiveWriter/Tip.NetDevelopmentServerinaMultiprojectS_104C2/image_2.png

右鍵單擊並關閉/退出。你可能有不止一個。你現在可以調試你的改變嗎?

您是否正在運行調試版本,但只構建了發佈版本(反之亦然)?

編譯成功了嗎?我知道我點擊了「有錯誤,你想繼續嗎?」消息幾次沒有意識到。

+0

編譯成功。當談到Visual Studio時,我有點兒不知所措。如何檢查我是否正在運行調試版本或發行版? – frustratedcoder 2010-06-21 18:41:03

+1

@frustrated - 我只是想消除明顯​​的。要檢查您是否處於發行版或調試狀態,請檢查工具欄上「調試」圖標旁邊的下拉列表。它將是「調試」或「發佈」。 – ChrisF 2010-06-21 18:44:54

+0

謝謝。它確實說調試。那應該是什麼? – frustratedcoder 2010-06-21 18:45:44

23

我只是有同樣的問題,我的項目都在同一個解決方案,所以他們使用項目到項目引用,所以作爲一個改變其他人應該已經更新。然而,事實並非如此,我試圖構建,重建,關閉VS2010,從我們的源代碼控制中提取新副本。這些都沒有奏效,我終於嘗試的是右鍵單擊項目並單獨重建每個項目。這更新了.dll和.pdb文件,所以我可以通過調試。

這裏的問題是您的dll和/或您的pdb文件不同步。

+1

你沒有直接提到,但「卸載項目」(重新加載)對我有用,謝謝。 – javaLover 2017-03-27 08:46:52

+0

這對我有用: >這一切都沒有工作,我終於嘗試的是右鍵單擊該項目並單獨重建每個項目。這更新了.dll和.pdb文件,所以我可以通過調試。 – Khachatur 2017-09-01 14:55:40

+0

卸載項目(重新加載)並將最新的位發佈到Web服務器(IIS)適用於我。 – 2017-10-02 20:22:33

99

我得到了這個問題,運行一個控制檯應用程序,其中不同的源代碼是具有入口點(靜態void Main)的源代碼。刪除bin和obj目錄並進行完全重建似乎可以解決這個問題,但每次我更改代碼時,它都會再次過期。

,我發現這樣做的原因是:

  1. 我測試過「只有建立在運行啓動項目和依賴關係」(工具 - >選項 - >項目和解決方案 - >生成和運行)
  2. 在配置管理器,我的初創項目沒有「生成」檢查

(#2 - 通過工具欄下的「調試/發佈」下拉列表>訪問)

+4

+1刪除obj和bin爲我工作 – BornToCode 2012-08-27 21:27:57

+6

對於配置管理器提示。我一直在試着將這個問題整理一個小時,就是這樣。 – 2013-03-28 17:36:38

+3

+1取消選中「Only build ...」爲我工作 – Jwosty 2013-07-06 00:16:56

3

請執行以下步驟

  1. 只需從生成DLL的項目中刪除bin目錄即可。
  2. 重建項目。
  3. 從引用該DLL的項目中刪除引用。
  4. 再次包含參考。
  5. 享受。
0

解決方案: - 問題是: - 如果你在一個解決方案的一些項目,參考一些其他的項目, 然後有時候一些項目的DLL,將不會自動更新,只要構建解決方案, 一些項目將有以前的版本的DLL,而不是最新的dll

你不得不手動,通過使用Visual Studio的最新版本項目的DLL複製到引用的項目

+1

我不喜歡它「有時」工作 – Joel 2013-11-26 17:17:01

2

Web服務,該問題可以引起「在瀏覽器中查看」命令。這將服務的DLL和PDB文件放入bin和obj文件夾中。當從客戶端進入Web服務時,Visual Studio使用bin(或obj)文件夾中的PDB,但它在項目的輸出生成文件夾中使用該DLL。有幾個解決方法:

  1. 嘗試刪除Web服務bin和obj文件中的DLL和PDB文件。
  2. 嘗試在Visual Studio中單擊「在瀏覽器中查看」。

如果您以前遇到源文件不匹配錯誤,Visual Studio可能會將文件名添加到黑名單中。檢查您的解決方案屬性在對話框左邊選擇「Common Properties - > Debug Source Files」。如果您的Web服務源文件出現在「不要查找這些源文件」字段中,請刪除它們。

0

我在使用Visual Studio 2013,並且在源代碼管理下有一個現有的項目。
我已經從源代碼控制下載了一個全新的副本到一個新目錄。
對新鮮副本進行更改後,建築物出現問題時收到錯誤。

我的解決辦法:
1)打開Documents\IISExpress\config\applicationhost.config
2)更新與目錄virtualDirectory節點到新的副本和保存。

1

這是我如何在Visual Studio 2010中的問題:))調試

1更改從 「調試」 的 '解決方案配置' 選項,以 「釋放」

2啓動

3 )停止調試並將「解決方案配置」選項切換回「調試」

這對我很有用。第3步是可選的 - 當我將其更改爲「發佈」時它工作正常,但我想將其更改回來。

1

我的解決方案:

我已經在新的解決方案文件中包含來自不同解決方案的現有項目。

我沒有注意到,當現有項目被重建時,它將最終輸出放入NEW解決方案的輸出目錄。我定義了一個鏈接器路徑來查看OLD解決方案的輸出目錄。

切換我的項目以在新解決方案的輸出目錄中搜索,爲我解決了這個問題。

2

我剛纔有這個問題。

我嘗試了所有上述情況,但僅此工作:

  • 刪除.pdb文件的解決方案。
  • 刪除違規.OBJ文件(該文件被報出同步)

構建解決方案。

這解決了所有構建向前發展的問題。

+0

我認爲刪除.pdb文件是關鍵。這發生在我身上,因爲我從另一個分支複製了陳舊的.pdb文件。 – Danzomida 2014-09-29 10:02:48

0

我的問題是我在項目中有一個web服務,我改變了構建路徑。

恢復默認構建路徑解決了我的問題。

0

我也遇到了同樣的問題,我在其他答案中遵循了大部分指導,沒有任何東西似乎適用於我。

我最終打開了IIS併爲我的web應用程序回收了應用程序池。我有IIS版本8.5.9600,我右鍵單擊我的Web應用程序,然後:部署>回收>回收應用程序池>確定。

這似乎已經修復了它,現在按預期擊中斷點。我認爲這樣做與刪除bin和obj文件夾一起幫助了我的情況。

祝你好運!

1

我有這個問題,事實證明我正在運行我的控制檯應用程序作爲一個Windows應用程序。將輸出類型切換回控制檯解決了問題。

1

我有同樣的問題。爲了解決這個問題,我使用了「發佈模式」在VS2013中進行調試。這對我來說就足夠了,因爲我在一個節點js \ C++ addon中工作。

0

我知道這是一個老問題,但我只是有同樣的問題,並希望張貼在這裏,以防萬一它幫助別人。我買了一臺新電腦,IT部門把我的舊電腦和新電腦合併在一起。當我設置TFS時,我將一個不同於以前使用的本地路徑映射到另一個內部驅動器。舊路徑依然存在於硬盤上的合併數據中,因此我仍然可以構建並運行。我的IIS路徑也指向舊的目錄。一旦我將IIS更新到正確的路徑,我就能夠很好地進行調試。我也刪除了舊的目錄,以達到很好的效果。

0

我也體驗過。我只需打開項目上的obj文件夾,然後打開調試文件夾刪除.pdb文件即可。

0

如果您嘗試更改不屬於該項目的源文件,也會發生此錯誤。

我從另一個項目的.dll調試了一個方法,其中Visual Studio已經非常有用地加載了源代碼,因爲.dll已經構建在同一臺機器上,並且它知道源代碼的路徑。顯然,除非重建引用的項目,否則更改此類文件不會執行任何操作。

0
  1. 刪除所有斷點。
  2. 重建。
  3. 完成
0

卸載具有導致該錯誤的文件的項目。

重新加載項目。

固定

0

在Visual Studio的2015年,使用C++,有什麼固定對我來說the source file is different from when the module was built問題是

  • 重新啓動Visual Studio。
0

Debug-> start without debugging。

此選項適用於我。希望這可以幫助!

1

在Visual Studio 2017中,爲我解決了這個問題,刪除了隱藏的.vs文件夾。

相關問題