Не удается открыть любой файл .cshtml в Visual Studio 2017 - PullRequest
0 голосов
/ 07 июня 2018

У меня есть выпуск Visual Studio 2017 Community Edition.Это единственные шаги, которые я предпринял для устранения этой ошибки.

  1. Я создаю новое веб-приложение .NET Core 2.0 / 2.1 (обе версии приводят к ошибке) \

  2. Я выбираю веб-приложение (Model-View-Controller)

  3. После создания проекта я пытаюсь открыть любой из файлов .cshtml, присутствующих всгенерированный шаблон проекта, но я получаю одну из этих двух ошибок:

    ( Изображение )
    Указанный ключ отсутствует в словаре

    ИЛИ

    ( Изображение )
    Не удалось загрузить файл или сборку Microsoft.VisualStudio.Editor.Razor ... "

Это происходит каждый раз, когда я пытаюсь открыть любой файл .cshtml в проекте. Я получаю первую ошибку, когда у меня установлено и включено расширение бритвы, и я получаю вторую ошибку, когда выключаю бритву.расширение (но бритва теперь интегрирована в VS 15.3 в соответствии с Visual Studio, и поэтому мне не нужно это в любом случае).

Есть идеи, как это решить?Я пытался

  1. Очистка кеша в %LocalAppData%
  2. Запуск переустановки NuGet
  3. Обновление до .Net Core 2.1
  4. Отключение расширений (я толькобыл загружен один, кроме предварительно упакованных расширений)
  5. Переустановка VS

Я уверен, что это просто то, что я не скачал или что-то пропустил, но я действительносейчас в недоумении, поэтому буду признателен всем, у кого есть идеи, которые я могу попробовать!

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

В моем случае я недавно отключил Razor Language Service Pack и забыл повторно включить его, это можно найти в разделе Инструменты> Расширения и обновления

0 голосов
/ 07 июня 2018

Нет необходимости удалять.Подобное случилось со мной на днях.Скорее всего, ваш файл .csproj не синхронизирован.

Щелкните правой кнопкой мыши по вашему проекту с именем Library

и перейдите туда, где написано edit-> Library.csproj (название вашего проекта с глобусом)

щелкните по нему.Это приведет вас к файлу с xml.

, взгляните на вашу целевую платформу: если она говорит

 <PropertyGroup>
    <TargetFramework>netcoreapp2</TargetFramework>

-> ваша на aspnetcore 2.0.x что-то

если вы видите версию 2.1 или выше, то вам нужно разрешить эти зависимости, ориентируясь на пакеты, которые совместимы.

вот пример моего файла csproj (Target framework = 2.0) после того, как я испортил его, захватив 2.1.x sqlite.

// --------------------------------------------------------

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2</TargetFramework>
    <UserSecretsId>aspnet-MyPoject-xxxxx-xxxCommented-0ut</UserSecretsId>
  </PropertyGroup>

  <ItemGroup>
    <Compile Remove="Data\Migrations\00000000000000_CreateIdentitySchema.cs" />
    <Compile Remove="Data\Migrations\00000000000000_CreateIdentitySchema.Designer.cs" />
  </ItemGroup>


  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.3" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="2.0.3" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.3" PrivateAssets="All" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.4" PrivateAssets="All" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
    <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.2" />
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Data\Migrations\" />
  </ItemGroup>

</Project>

// ---------------------------------------------------------

Cli-инструмент и PackageReferenceдолжны быть синхронизированы с целевой фреймворкой.

Я также вижу, что у вас есть файл cookie согласия, поэтому вы можете использовать более новую версию.

В этом случае может потребоваться использовать Dotnet CliИнтерфейс командной строки для запуска проекта. Измените эту зеленую кнопку воспроизведения из IIS Express на имя вашего проекта в раскрывающемся списке.откройте фактическую папку проекта с помощью powershell .. выполните эти команды в каталоге вашего веб-приложения

dotnet restore, а затем dotnet run

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...