Razor Class Library MSBuild MSB4062 Ошибка во время компиляции - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь выяснить, как решить ошибку MSB4062 при создании приложения MVC, которое ссылается на библиотеку классов Razor.Чтобы воспроизвести его, необходимо создать новый проект MVC (с «dotnet new mvc»), создать новую библиотеку классов Razor (с «dotnet new razorclasslib») и добавить библиотеку классов в приложение MVC, добавив вФайл csproj:

<ItemGroup>
    <ProjectReference Include="..\Library\Library.csproj" />
</ItemGroup>

Как только я пытаюсь скомпилировать проект (я использую код Visual Studio), я получаю следующее сообщение об ошибке:

C: \Программные файлы \ DotNET \ sdk \ NuGetFallbackFolder \ microsoft.aspnetcore.razor.design \ 2.1.2 \ build \ netstandard2.0 \ Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets (69,5): ошибка MSB4062: ошибка «MicrosoftНе удалось загрузить задачу «.AspNetCore.Razor.Tasks.RazorTagHelper» из сборки C: \ Program Files \ DotNET \ sdk \ NuGetFallbackFolder \ microsoft.aspnetcore.razor.design \ 2.1.2 \ build \ netstandard2.0 ....\ задачи \ netstandard2.0 \ Microsoft.AspNetCore.Razor.Tasks.dll.Сборка с тем же именем уже загружена. Убедитесь, что объявление правильное, что сборка и все ее зависимости доступны, и что задача содержит открытый класс, реализующий Microsoft.Build.Framework.ITask.[C: \ Users \ userprofile \ Development \ Application \ Application.csproj]

Действительно странная часть заключается в том, что если я затем удаляю запись ProjectReference в файле csproj, скомпилируем приложение MVC (безбиблиотека), затем повторно добавьте запись ProjectReference, весь проект (с библиотекой) компилируется нормально.Однако, как только я очищаю приложение или библиотеку MVC, ошибка возвращается.

1 Ответ

0 голосов
/ 11 декабря 2018

Добавление следующего в файл csproj библиотеки классов бритв устраняет проблему:

<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />

Похожая ссылка уже существует по умолчанию в файле csproj приложения ... может быть, было несовпадение версий?

...