我已经有一段时间了,但似乎无法解决这个问题。我有一个需要调用WebSecurity.InitializeDatabaseConnection()
的控制台应用程序。我已经解决了一些问题,但现在我收到了错误:
Could not load file or assembly 'System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
我已经从PackageManager运行了Install-Package Microsoft.AspNet.Providers和Install-Package Microsoft.AspNet.Providers.Core。
我已经验证了System.Web.Providers的程序集引用版本是2.0.0.0并且CopyToLocal设置为true。
我已经验证了程序集存在于bin目录中。
这是我的App.config。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework"
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<authentication mode="None" />
<profile defaultProvider="DefaultProfileProvider">
<providers>
<add name="DefaultProfileProvider"
type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider">
<providers>
<add name="DefaultMembershipProvider"
type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true"
requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<roleManager defaultProvider="DefaultRoleProvider" enabled="true">
<providers>
<add name="DefaultRoleProvider"
type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</roleManager>
</system.web>
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=.;Initial Catalog=MyDatabase;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
任何建议都表示赞赏。
答案 0 :(得分:0)
我遇到了这个确切的问题,整个上午破坏了我的脑袋得到了解决。我知道问题是什么,但我找不到System.Web.Providers 2.0.0.0我只能找到版本1.
我在网上找到的很多资源都建议我通过NuGet包管理器控制台尝试以下命令。
Install-Package Microsoft.AspNet.Providers
Install-Package Microsoft.AspNet.Providers.Core
然而,这些仍然安装版本1.0.0.0,我喜欢自己需要2.0.0
我解决问题的方法是转到
工具&gt; NuGet包管理器&gt;管理NuGet包以获得解决方案
当对话框出现时,我进入了更新部分并查找了Microsoft ASP.NET Universal Providers核心库并点击了更新。
当我通过控制台运行命令时,它总是安装版本1,当我这样添加版本2.
希望这会有所帮助,如果你已经解决了它,希望它可以帮助像我一样的其他人在早上寻找解决方案。