2010-10-14 55 views
2

我最近重構了一些代碼,原始Global.asax.cs文件依賴的方法不再是靜態的。當我對Global.asax.cs代碼進行更改以修復編譯問題時,VisualStudio Development Server仍在報告舊問題。爲了讓事情更加令人困惑,它使用新的源代碼報告了舊問題。Global.asax.cs文件不重新編譯 - 文件有效

當我啓動開發服務器我得到搬弄是非的錯誤屏幕說:找不到

方法:「System.Security.Principal.IPrincipal Example.Records.AuthenticationManager.GetPrincipleForUserName(System.String);

這個原始的例外是位於第54行 - 這對你,我或任何其他人都無關緊要。但是,它對Development Server很重要。無論我更改代碼,甚至完全註釋掉原始代碼,我都會得到相同的錯誤消息。唯一的區別是它顯示的代碼片段。它目前指向評論欄。

因此,DevelopmentServer正在看到舊的編譯代碼,而VisualStudio正在看到新的代碼。我無法設置斷點,因爲VisualStudio告訴我源代碼與原始版本不同。

如何強制DevelopmentServer查看可用的新代碼?

+0

reboot ?????????? – 2010-10-14 17:00:40

+0

+1:我以前發生過這種事。這是非常令人沮喪的,但我不記得我做了什麼工作。 – 2010-10-14 17:01:41

+0

我只是在絕望中嘗試過。仍然沒有骰子。我在想,也許病毒掃描器造成了問題(就像我們這裏有其他投影機一樣)。僅供參考McAfee +按訪問掃描+編譯代碼=災難。 – 2010-10-14 17:25:26

回答

2

我已經找到發生這種情況的真正原因,並且當您嘗試調試應用程序時,它也會影響「未加載此類的符號」問題。問題與DLL的路徑有關。如果您的Web應用程序是更大解決方案的一部分,並且某人編輯瞭解決方案配置,Visual Studio將更改構建輸出路徑。

默認情況下,Debug的編譯輸出路徑位於〜\ bin \文件夾中。這樣卡西尼就可以找到DLL和PDB文件。當有人編輯主配置並更改體系結構時,VisualStudio會自動將目標輸出目錄更新爲「〜\ bin {architecture} \ Debug」。您必須手動進入項目的屬性,並將輸出目錄設置爲「bin \」以再次調試。一旦你這樣做,它會再次工作。

---原來的答案:

我可以做,使之工作是創建一個新項目,並複製我的代碼中這不是一個很好的答案,但它的最好我能想出的唯一的事。用。相同的確切代碼像冠軍一樣運行。在逐行瀏覽項目文件後,我找不到任何能解釋我所看到的行爲的東西。