2017-08-01 35 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中相同的版本。