2013-11-21 67 views
0

我被困在DLL地獄中。我的項目中引用了一個.dll文件。我將它稱爲project.dll。 Project.dll是由Visual Studio 2012創建的。我通過瀏覽到它的bin目錄來引用project.dll。我可以在目錄中看到它。Visual Studio 2012拒絕找到引用的.dll

只要我嘗試調試到project.dll,Visual Studio的行爲就像不存在的東西。它反而給了我一個說「Filename.cs」沒有找到的屏幕。「(它甚至看起來?)Filename.cs是project.dll的一部分。它讓我可以選擇瀏覽到f​​ilename.cs,我嘗試然後我得到一個錯誤,說源文件與模塊建立時不同,這是沒有意義的,因爲我只是建立了project.dll並引用它,我還應該補充說明錯誤如下:

來源:正確路徑Filename.cs

模塊:空白

過程:空白

我已經嘗試了所有下面和諾斯的解決此問題:

  1. 兩個項目的清潔/生成/重建。 (的地方,我想嘔吐點)在C
  2. 清除瀏覽器緩存
  3. 刪除臨時文件
  4. 刪除一切:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \臨時ASP.NET文件
  5. 驗證在GAC中不存在project.dll。
  6. 多次退出並重新啓動Visual Studio。
  7. 重新啓動計算機。
  8. 刪除參考,然後重新添加參考。
  9. 手動從其他項目的bin文件夾中刪除project.dll。
  10. 尖叫。

如何讓Visual Studio 2012識別project.dll和filename.cs都存在並且是正確的版本?另外,也許更重要的是,我如何防止未來發生這種BS?

編輯:我只是注意到,「瀏覽到文件」屏幕,有文本框說「原始位置」後跟我的機器上不存在的路徑。我相信這是問題的一部分。如何讓Visual Studio停止查找無效路徑,而是查看project.dll引用的正確路徑?

+0

http://superuser.com/似乎是提出這個問題的好地方! –

+0

@huMptyduMpty這看起來像一個開發人員問題,而不是IT。 –

+0

原來的位置是否看起來很熟悉?我發現它現在不存在,但它是您的機器上以前存在的位置?或者它完全不熟悉,並且在其他開發人員的機器上? –

回答

0

我不知道爲什麼最終解決了這個問題,但我注意到MyMainWebService.dll(引用project.dll的項目)上的日期已過時。我手動刪除了這個.dll以及那個project.dll的版本。然後我構建瞭解決方案,並找到了正確版本的project.dll。 (它也構建了MyMainWebservice.dll的正確日期)。

讓我感到困惑的是爲什麼沒有做一個「乾淨」刪除過時的MyMainWebService.dll版本?

0

從加載的project.dll實例的特定找到的調試信息中扣除「原始位置」。它是在project.dll被構建時添加的。

發生了什麼事情是,你的軟件顯然不會加載你構建的project.dll,而是另一個。要找出哪一個,打開Visual Studio的「模塊」視圖:調試> Windows>模塊。瀏覽到列表中的項目dll,您可以找到從中加載的確切位置。現在你只需確保用你的副本覆蓋那個確切的project.dll(或者改變它的加載方式,這樣你的程序就會被加載)。

+0

嗨Csaba Toth。爲project.dll提供的路徑位於「C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ root」下。我在那裏看到一個名爲「__AssemblyInfo __。ini」的文件。該文件內是project.dll的正確路徑。 – Dave

+0

如何在臨時文件夾中查找它?我不斷從這裏刪除。要回答上面以前的評論中提到的其他問題......路徑來自另一個開發人員的機器。 – Dave

+0

在你的情況下,ASP.NET部署會圍繞一點點旋轉,並增加一個額外的步驟。現在你必須找到project.dll的另一個副本(由你的開發夥伴編譯)。這就是從它被部署到臨時文件夾的地方。 –

相關問題