34

我想使用外部登录,所以我通过包管理器安装了 Oauth:

 PM> Install-Package Microsoft.AspNet.WebPages.OAuth

然后安装后出现此错误然后我安装剃须刀:

PM> Install-Package Microsoft.AspNet.Razor

但我仍然有这个例外。此外,我的应用程序是一个 asp.net 应用程序,而不是一个 MVC 应用程序。感谢帮助。

[FileNotFoundException: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.]
   Microsoft.Web.WebPages.OAuth.PreApplicationStartCode.Start() +0
4

6 回答 6

16

提前为这个低技术建议道歉,但另一个选择,在与 NuGet 斗争了几个小时后终于对我有用,是重新创建一个新的空项目,在我的例子中是 Web API,然后复制你旧的内容,现在破项目成新项目。花了我大约15分钟。

于 2014-06-10T18:41:38.067 回答
12

您已升级到 Razor 3。请记住,VS 12(直到更新 4)不支持它。从 nuget 安装 Razor 3 或通过这些步骤将其降级

geekswithblogs.net/anirugu/archive/2013/11/04/how-to-downgrade-razor-3-and-fix-the-issue-that.aspx

于 2013-11-04T08:06:37.643 回答
10

另一种选择是更新 Microsoft.AspnNet.Mvc NuGet 包。请小心,因为 NuGet 更新不会更新 Web.Config。您应该将所有以前的版本号更新为更新后的版本号。例如,如果您从 asp.net MVC 4.0.0.0 更新到 5.0.0.0,则应在 Web.Config 中替换:

    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

 <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

<pages
    validateRequest="false"
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <controls>
    <add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  </controls>
</pages>
于 2015-09-07T19:28:35.247 回答
4

NuGet Package Manager在 Visual Studio 中使用控制台更新

Update-Package -reinstall Microsoft.AspNet.Mvc
于 2018-01-08T08:46:25.877 回答
0

对我有用的是:右键单击项目属性然后管理 Nugget 包然后选择更新选项卡然后选择 Microsoft.AspNet.Razor 然后降级到版本 3.0.0

于 2021-03-15T05:23:55.227 回答
0

我走得更远了。我的项目非常大,我拒绝创建一个新项目,然后将所有内容从旧项目转移到新项目。无聊的。

我的解决方案
我强迫NUGET重新安装所有内容,我从项目文件中获取名称'Import Project=...',删除了'.props'扩展名。在 V/Studio 工具菜单上打开 NUGET 控制台:

在我的项目上(部分)

Update-Package -reinstall Microsoft.Net.Compilers.Toolset
Update-Package -reinstall Microsoft.Net.Compilers
Update-Package -reinstall Microsoft.CodeAnalysis.Analyzers
Update-Package -reinstall Microsoft.TypeScript.MSBuild
Update-Package -reinstall EntityFramework
Update-Package -reinstall Microsoft.TypeScript.Default
Update-Package -reinstall Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Update-Package -reinstall Microsoft.Common
Update-Package -reinstall Microsoft.TypeScript.MSBuild

Finnaly
然后,在同一个项目文件上,我删除了所有包含 <Error Condition="!Exists('packages....以避免编译器丢失包失败的行。

我的项目和解决方案现已启动并运行。

于 2021-10-11T01:07:15.190 回答