2016-06-10 48 views
0

我有一個sln。文件構建並在本地機器上運行。當我到達構建TFS服務器中sln的位置時,出現錯誤解決DLL「無法解決參考」問題的步驟是什麼

無法解析此引用。無法找到程序集「DataTables」(我所指的程序集)。檢查以確保程序集存在於磁盤上。如果您的代碼需要此引用,則可能會出現編譯錯誤。

我試圖來逐步解決此錯誤的過程中,這裏是我迄今所做的:

  • 確信目標框架是雙方

  • 相同確保有一個靜態的dll文件位置

  • 確保引用sln中的文件並使用隨附的使用語句

下一個要研究的邏輯區域是什麼?

我認爲問題在於,我第一次引用dll它是在一個位置,我之前更改了dll文件位置幾次,因爲我將dll存儲在桌面中,並且必須重新組織我的文件夾。

我簡要閱讀了本地構建能夠運行的地方,可能是sln文件將原始dll保存到bin中,並在它找不到參考部分。

我可以將兩個想法連接在一起,但我不知道如何讓sln文件刪除不再有效的dll文件位置的痕跡,並使其開始使用正確的dll文件路徑。

我可能是錯的,並可能有一個不同的問題來源,我已經看了。

我是初學者,所以要注意可能存在一些誤解,我可能會在上面的章節中扼殺一些概念。任何見解和建議將不勝感激。

回答

0

我有人幫我建立sln。這些是我們用來更改文件引用並允許其工作的步驟。 我們將dll放入sln文件,然後通過卸載項目來更改參考提示,然後右鍵單擊「編輯」sln。

在該接口中,我們更改了xml文件並將引用更改爲sln內部,它現在構建在產品中。服務器

謝謝!希望這可以幫助別人。

P.S.我仍然想要澄清一下哪裏出了問題(例如,提示文件路徑很長,和/或我可以做些什麼來完成參考工作,而不必將dll移動到sln文件中,以防止出現這種情況在另一次發生這個問題。

+0

除非您使用MSBuild診斷日誌記錄來收集有關解決過程的更多數據,否則沒有人會奇蹟般地看到您的代碼並向您顯示原因。 –

0

這就是爲什麼提示路徑將文件引用到源代碼管理之外的路徑,因此當構建服務器拉動代碼時,它無法解析C:\ users [name] \ desktop \ (或在那裏引用的地方)在BUILD服務器上。

「我認爲問題在於我第一次引用dll時,它是在一個位置,我之前更改了dll文件位置幾次,因爲我將dll存儲在桌面中,不得不重新組織我的文件夾。「

+0

我明白了,謝謝!我真的很難過這個。真正絆倒我的是,我將dll文件拖放到了sln所在的同一個文件夾中。我曾假設構建服務器會檢測到該文件並從文件夾中提取它。這是一個角色建設錯誤/故障排除,我從這個角度出發瞭解更多關於sln目錄是如何工作的以及bin文件夾是什麼等等。人生就是旅程 –

+0

我看到人們總是這樣做。要記住的重點是,只有位於SourceControlFolder下的來自構建定義的文件纔會被引入到構建中,因此引用不在該根下的內容的任何內容都不會出現在構建中。 GAC引用可以(如果服務器上安裝了相同的引用),但其他任何內容都必須位於該引用之下,並使用相對提示路徑引用。 –