2017-08-01 38 views
0

我已經安裝了entity framework v 6.0.0.0 nuget包。構建失敗實體框架 - 編譯錯誤

在本地構建解決方案時,它工作良好,沒有任何問題。但是,當我檢查代碼並在構建服務器上運行時,它會拋出編譯錯誤。

Primary reference "EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL". C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

任何建議,將不勝感激。先謝謝你。

+0

重新安裝實體框架nuget包。 –

+0

我試了很多次。似乎沒有工作。這是許多論壇提供的解決方案。 – Vicky

+0

嗯真的很奇怪。這是應用程序還是Web項目?可以檢查app.config(web.config爲基於網站的項目)?如果有一些不必要的綁定.. –

回答

3

您可能遇到的問題是您的構建代理無法爲您獲取Nuget包。

在我的公司,這是由構建代理正在運行的服務帳戶導致的,默認情況下沒有設置公司代理。

因此,首先您需要以真實用戶身份運行構建代理服務(即不是網絡服務或本地服務)。然後您需要以該用戶身份登錄到構建代理並手動設置代理。希望你可以使用你自己的代理設置。

自從我這樣做了很長一段時間,但我似乎也記得可能有一些Visual Studio設置默認關閉Nuget包恢復。因此,當我對這類問題進行故障排除時,我通常會做的就是嘗試在Visual Studio中將該解決方案構建爲構建代理上的構建代理用戶。一旦你可以成功地完成這個構建工作。它也應該在您添加Nuget包時起作用。

如果因爲無法通過代理獲取構建代理用戶而無法正常工作,那麼您始終可以創建本地Nuget文件共享並將包複製到該共享中,然後將該共享添加到您的Nuget配置中。這在nuget.config文件中配置。我看起來像這樣:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <solution> 
    <add key="disableSourceControlIntegration" value="true" /> 
    </solution> 
    <packageSources> 
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" /> 
    <add key="Private package source" value="\\BuildController\nuget\Packages" /> 
    </packageSources> 
</configuration> 

第二個包源代碼是我們放置我們自己的包的文件共享。

+0

謝謝。但是,我從來沒有從Visual Studio中構建解決方案作爲構建代理上的構建代理用戶。只是第一次聽到。你能詳細說明一下,這樣我就可以詳細說明這一點。 – Vicky

+0

您需要找出生成代理程序運行的帳戶,然後您需要通過遠程桌面(或直接如果它是物理機)以該用戶身份登錄到生成代理程序。你自己設置了構建代理嗎? – briantyler

+0

不,DevOps負責構建代理和所有。 – Vicky

0

可能版本沒有正確更新,請從Nuget Package Manager中卸載並重新安裝實體框架,並確保package.config和web.config具有與您的reference/bin中相同的版本。