我最近将一个应用程序升级到 dotnet core 3,并在构建过程中开始使用 PublishSingleFile 标志。通过这两个更改,找到可执行路径的方式发生了变化。现在,我没有获取可执行文件所在的路径,而是重定向到一个随机目录/var/tmp/.net/,就像我以前获取/opt/appdir/.
Directory.SetCurrentDirectory(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location));
Run Code Online (Sandbox Code Playgroud)
编辑:所以看起来它吐出的随机目录实际上指向我的应用程序的解压缩版本,该版本不包含其他目录中的重要资源。
我已经将现有的 asp.net mvc 应用程序从 netcoreapp3.0 更新到 netcoreapp3.1,以及所有引用的包。项目设置有目标框架,我的电脑安装了 SDK
<TargetFramework>netcoreapp3.1</TargetFramework>
Run Code Online (Sandbox Code Playgroud)
我在使用 C# coaslescing 分配功能 的地方出错了??= 这在更新之前没有问题。@SebastianHofmann 已经确认其他 C#8 功能也不起作用。
Error CS8370 Feature 'coalescing assignment' is not available in C# 7.3.
Please use language version 8.0 or greater.
Run Code Online (Sandbox Code Playgroud)
根据 MSFT netcoreapp3.1 应该使用 C#8 并且确实必须

我刚刚看到的高级项目设置已在 Visual Studio 2019 (16.3.10) 中禁用

我可以切换回 3.0 并再次编译
我正在尝试使用 EF 核心迁移功能。但是当我从 NuGet 安装 dotnet-ef 工具时,会抛出以下错误消息。我的应用程序版本是 netcoreapp3.0。
dotnet tool install --global dotnet-ef --version 3.1.0-preview3.19554.8
Run Code Online (Sandbox Code Playgroud)
错误 NU1202:包 dotnet-ef 3.1.0-preview3.19554.8 与 netcoreapp3.0 (.NETCoreApp,Version=v3.0) / any 不兼容。包 dotnet-ef 3.1.0-preview3.19554.8 支持:netcoreapp3.1 (.NETCoreApp,Version=v3.1) / any
旧版本仅支持 netcoreapp2.1
dotnet tool install --global dotnet-ef --version 3.0.1
Run Code Online (Sandbox Code Playgroud)
错误 NU1202:包 dotnet-ef 3.0.1 与 netcoreapp3.0 (.NETCoreApp,Version=v3.0) / any 不兼容。包 dotnet-ef 3.0.1 支持:netcoreapp2.1 (.NETCoreApp,Version=v2.1)
实际上哪个 dotnet-ef 版本支持 netcoreapp3.0 知道吗?
c# entity-framework entity-framework-core .net-core netcoreapp3.0