Razor类库MSBuild MSB4062编译期间错误

时间:2018-12-03 21:53:14

标签: c# asp.net-core compiler-errors msbuild .net-core

在构建引用Razor类库的MVC应用程序时,我试图弄清楚如何解决MSB4062错误。重现它的步骤涉及创建一个新的MVC项目(运行“ dotnet new mvc”),创建一个新的Razor类库(运行“ dotnet new razorclasslib”)以及通过将以下内容添加到MVC应用程序中来添加类库。 csproj文件:

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

一旦我尝试编译项目(我正在使用Visual Studio Code),就会收到以下错误消息:

  

C:\ Program Files \ DotNET \ sdk \ NuGetFallbackFolder \ microsoft.aspnetcore.razor.design \ 2.1.2 \ build \ netstandard2.0 \ Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(69,5):错误MSB4062:无法从程序集C:\ Program Files \ DotNET \ sdk \ NuGetFallbackFolder \ microsoft.aspnetcore.razor.design \ 2.1.2 \ build \ netstandard2加载“ Microsoft.AspNetCore.Razor.Tasks.RazorTagHelper”任务.0 .... \ tasks \ netstandard2.0 \ Microsoft.AspNetCore.Razor.Tasks.dll。具有相同名称的程序集已经加载确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现Microsoft.Build.Framework.ITask的公共类。 [C:\ Users \ userprofile \ Development \ Application \ Application.csproj]

真正奇怪的部分是,如果我然后删除csproj文件中的ProjectReference条目,则编译MVC应用程序(不带库),然后重新添加ProjectReference条目,整个项目(带库)都可以正常编译。但是,一旦我清理了MVC应用程序或库,错误就会再次出现。

1 个答案:

答案 0 :(得分:0)

将以下内容添加到razor类库的csproj文件中可解决此问题:

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

默认情况下,应用程序的csproj文件中已经存在类似的引用...也许版本不匹配?