我有.NET6应用程序,我想在特定的.NET6运行时版本上运行此应用程序.

假设我的机器上安装了2.NET6运行时,即6.0.21和6.0.26.我希望我的.NET6应用程序在6.0.21运行时运行,而不是在6.0.26运行时运行.它总是只使用最新的6.0.26运行时.我如何实现这一点?

我try 了以下两种 Select 来实现这一点,但都没有帮助,

  • 通过在csproj文件中设置<RuntimeFrameworkVersion>6.0.21</RuntimeFrameworkVersion>
  • 通过添加具有以下条目的lobal.json文件
{
  "runtime": {
    "version": "6.0.21"
  }
}

请注意,为了识别应用程序使用的运行时,我在应用程序中添加了下面的代码行,它告诉您使用的是什么运行时.目前它显示的是6.0.26.

RuntimeInformation.FrameworkDescription

请让我知道有没有其他方法可以做到这一点?

推荐答案

  1. 使用.runtimeconfig.json,请注意rollForward必须设置为Disable

    "runtimeOptions": {
        "framework": {
          "name": "Microsoft.NETCore.App",
          "version": "6.0.21"
        },
        "rollForward": "Disable"
    }
    
  2. 使用命令行选项--fx-version

    dotnet --fx-version 6.0.21 <YOUR DLL>
    

Csharp相关问答推荐

子组件:如何根据另一个组件的状态启用输入

C#类主构造函数中的调试参数

使用客户端密钥为Fabric Rest API生成令牌

是否可以使用EF—Core进行临时部分更新?

使用C#HttpClient以多部分形式数据发送带有非ASCII文件名的文件的问题

注册所有IMediatR类

我想在文本框悬停时在其底部显示一条线

C#阻塞调用或await calling inside calling方法

如何在NET 8最小API中自动记录TypedResults.Stream响应

Polly重试URL复制值

在.NET 8最低API中从表单绑定中排除属性

是否可以将Collectionview中的数组与ObservableCollection绑定?

如何从Entity Framework Core中填充ListIInterface

我的命名管道在第一次连接后工作正常,但后来我得到了System.ObjectDisposedException:无法访问关闭的管道

如何从非异步任务中正确返回TypeResult

ASP.NET MVC数据批注验证组复选框

C#USB条形码 scanner 在第二次扫描时未写入行尾字符

如何在.NET Core 8中自定义标识用户模型

如何在Cake脚本中设置MSBuild.exe的绝对路径

如何获取我在SQL中输入的值