2010-03-26 108 views
0

這一個讓我難倒了一年多,看起來很奇怪,真的很晦澀。當我構建我的解決方案時,它會抱怨缺少引用的DLL。當我重建它時,問題就消失了。每當我做一次乾淨的回報,即在成功之前必須嘗試兩次構建。非常奇怪的構建問題

這是模糊的,但如果有必要,我可以更好地解釋解決方案的結構。由於解決方法只是簡單地構建兩次,所以我從來沒有想過要給予更多的關注,但它非常煩人。

此外,構建失敗,因爲它似乎只是缺少DLL,所以代碼後引用它失敗,因爲從DLL中缺少類型。下次啓動構建時,它可以正常工作。

更新:

  • 引用的DLL是外部的(ValidationFramework CodePlex從),位於源樹。
  • 我的項目都沒有複製DLL,只是其中一些引用它。
  • 這發生在Debug和Release版本中。

剛剛找到與之相關的還補充說,項目A引用的ValidationFramework.dll一樣,項目B,但B項目的參考項目A.現在,當出現生成錯誤,它總是當編譯器去項目B ,即項目A總是在第一次和第二次構建嘗試中成功構建。另外,當項目B失敗時,我可以一遍又一遍地點擊「構建」而不起作用,它確實需要「重建」,所以無論「修復」發生的問題發生在構建項目B之前問題本身也可能)。

+0

是否所有的.dll文件都包含在項目中,還是引用了dll的int文件系統?你有任何項目在生成事件中複製.dll文件嗎? – vfilby 2010-03-26 19:53:23

+0

@vfilby - 查看問題的更新。 – 2010-03-26 20:02:52

回答

1

缺少的DLL是在工作區中構建的項目之一嗎?您是否設置了項目依賴關係,以便在利用項目構建之前構建DLL項目?

+0

@jwismar - 查看有問題的更新。 – 2010-03-26 19:59:39

+0

您可以成功構建引用DLL的任何單個項目嗎?你有沒有看過是否有排序(先建立項目A,然後項目B等),讓你的構建在第一次嘗試中成功? – jwismar 2010-03-26 20:06:37

+0

構建在兩次嘗試上都是相同的,但是我只是更新了問題以反映您的訂購問題以及它如何影響構建過程。 – 2010-03-26 21:17:17

0

這聽起來含糊不清。我可能已經與vs.net 2003或2005經歷過這一點,我不記得。但它展示瞭如下:

在調試版本中,被引用的C++/CLI會被正確地複製到使用程序集文件夾,但是當我發佈版本時,它會突然中斷,因爲引用項目找不到它們。事實證明,這是一個VS.NET錯誤,我認爲這是在服務中修復的,但在此期間,我添加了一些構建後步驟,以便通過暴力將程序集移動到需要的地方。

您的調試版本是否每次都有效?

+0

已更新的問題,但無論調試還是發佈,都會出現問題。 – 2010-03-26 20:54:24