Asp.net core Blazor应用程序、NU1201和.NET Core 3.1

Asp.net core Blazor应用程序、NU1201和.NET Core 3.1,asp.net-core,visual-studio-2019,blazor,Asp.net Core,Visual Studio 2019,Blazor,我最近升级到Visual Studio Community 2019 16.5.2。我们的Blazor服务器应用程序的解决方案由几个项目组成,所有这些项目都是针对.NET Core 3.1的 当我试图从Visual Studio发布应用程序时,出现以下错误: NU1201项目GCB.Storage与netcoreapp3.0(.NETCoreApp,版本=v3.0)/win-x64不兼容。项目GCB.存储支持:netcoreapp3.1(.NETCoreApp,版本=v3.1) VisualSt

我最近升级到Visual Studio Community 2019 16.5.2。我们的Blazor服务器应用程序的解决方案由几个项目组成,所有这些项目都是针对.NET Core 3.1的

当我试图从Visual Studio发布应用程序时,出现以下错误:

NU1201项目GCB.Storage与netcoreapp3.0(.NETCoreApp,版本=v3.0)/win-x64不兼容。项目GCB.存储支持:netcoreapp3.1(.NETCoreApp,版本=v3.1)

VisualStudio说我在GCB.Main.csproj中得到了项目“GCB.Main”的上述错误。GCB.Main参考了GCB.Storage项目。这两个项目的目标框架都设置为.NETCore3.1。我仔细检查了这两个项目中的所有依赖项和项目引用,没有一个依赖于.NETCore3.0

表示当“依赖项项目不包含与当前项目兼容的框架时,可能会发生错误。通常,该项目的目标框架的版本高于使用该项目的版本。”

以下是我在Visual Studio中的发布配置文件参数:

  • 配置:调试
  • 目标框架:netcoreapp3.1
  • 部署模式:依赖于框架
  • 目标运行时:win-x64
我查看了发布服务器上的控制面板,它安装了“Microsoft.NET Core SDK 3.1.201(x64)(来自Visual Studio)”更新。我需要在服务器上配置/安装任何东西吗?我没有看到.NET Core Runtime 3.1的条目,但我确实看到了MSFT.NET Core-3.0.0(x86)、x64和MSFT.NET Core 3.0.0(Windows服务器主机)的条目。即使我在同一台服务器上安装了Visual Studio 2019 16.5.2,我是否应该显式安装.NET Core 3.1运行时

请注意,我能够在发布解决方案的同一台服务器上编译/重建解决方案,而不会出现任何错误。然而,当我试图发布时,我发现上面的发布错误

下面是我的pubxml

--


文件系统
文件系统
调试
任何CPU
真的
假的
netcoreapp3.0
win-x64
a2939d6d-c286-40c3-a015-e946d67cd806
假的
C:\GCB
真的
--

有什么建议吗


谢谢

无论出于何种原因,发布配置文件似乎与用户体验不同步


将您的pubxml文件更新为
netcoreapp3.1
,它应该不会出现问题

您是否尝试过从cmdline执行
dotnet build
dotnet publish
以查看问题是与框架有关还是与VS有关?我已经安装了MSFT.NET Core 3.1.3 Windows服务器主机,并尝试过从Visual Studio发布但是运气不好。我现在将尝试使用dotnet构建和发布命令,并让您知道。谢谢。@ESG dotnet生成和发布命令成功!文件是在\bin\debug\netcoreapp3.1发布的如果我想将应用程序发布到特定位置,是否只是从netcoreapp3.1文件夹复制这些文件?为什么您认为visual studio的发布配置文件不起作用?您可以复制这些文件,也可以在发布时指定
-o
。至于VS配置文件不起作用的原因,不看配置文件很难判断。你能展示你的
pubxml
profile吗?@ESG我用pubxml更新了我的原始帖子。有趣的是,targetframework仍然显示netcoreapp3.0,而在visual studio的界面中,我看到targetframework设置为3.1thanks!即使我看到安装了“Visual Studio中的Microsoft.net core SDK 3.1.201(x64)”,但您认为我需要“.net core 3.1 windows server hosting”吗?这些是不同的东西。服务器托管是在IIS中托管应用程序,不需要构建或发布:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <PublishProvider>FileSystem</PublishProvider>
    <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <ProjectGuid>a2939d6d-c286-40c3-a015-e946d67cd806</ProjectGuid>
    <SelfContained>false</SelfContained>
    <publishUrl>C:\GCB</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
  </PropertyGroup>
</Project>