2016-03-04 84 views
1

我有一個情況我有一個丟失的引用(表示感嘆號)中的溶液然而生成與消息將成功:爲什麼MSB3245不能使構建失敗?

C:\ Program Files文件 (86)\的MSBuild \ 12.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(1697,5): 警告MSB3245:無法解析此引用。找不到 程序集「EntityFramework」。檢查以確保磁盤上的程序集存在 。如果您的代碼需要此引用,則可能會收到 編譯錯誤。

這是因爲我已經將它有望挺讓人擔心的構建失敗

MSB3245只是作爲警告而背後有理由嗎?

+1

編譯器是最終的仲裁者。如果它找不到參考裝配,那麼它會大聲地嚷嚷。爲什麼它不是從這個問題無法猜測的。任意:檢查.csproj文件的內容並驗證引用是否具有HintPath元素。 –

+0

參考文獻已損壞。不過,我試圖理解爲什麼這不會使構建突破。直覺告訴我,否則。 –

回答

1

您看到的警告來自MSBuild的ResolveAssemblyReferences目標。它的工作是根據項目XML中給出的信息來確定引用程序集的完整路徑。例如,通過ResolveAssemblyReferences在全局程序集緩存(GAC)中找到類似<Reference Include="System.Xml" />的引用,並將該DLL的完整路徑傳遞給編譯器。

如果無法確定引用程序集的完整路徑,則不會將引用傳遞給編譯器。如果您的實際代碼都不依賴於引用,則編譯將會成功,並且構建將繼續。

您不能有任何代碼實際上取決於要傳遞給編譯器的EntityFramework

相關問題