You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多目标框架项目中如何指定运行.NET 4.6.1分支代码?

解决多目标框架项目运行时指定.NET 4.6.1分支的问题

这个问题的核心是:你的项目虽然配置了多目标编译,但运行时默认选择的是.NET Standard 2.0对应的输出(或者说用了兼容.NET Standard的宿主环境),导致代码走到了else分支。下面是具体的解决办法:

1. 在Visual Studio中明确选择运行的目标框架

  • 右键你的项目,选择「属性」,切换到「应用程序」标签页,在「目标框架」下拉菜单里选中.NET Framework 4.6.1,点击确定后重新编译运行。
  • 更快捷的方式:在Visual Studio顶部工具栏,找到解决方案配置(比如Debug/Release)旁边的「目标框架」下拉框,直接切换到net461,然后点击运行按钮。

2. 命令行运行时指定框架参数

如果你用dotnet run命令启动项目,需要显式指定要运行的框架版本:

dotnet run --framework net461

这样dotnet CLI会自动找到net461目录下的编译输出并运行,代码就会进入#if NET461的分支。

3. 直接运行对应目录的可执行文件

多目标项目编译后,会在输出目录下生成两个子文件夹:

  • bin/Debug/net461:这里面是.NET Framework 4.6.1的可执行文件(.exe),直接双击运行它就能触发.NET 4.6.1的分支逻辑。
  • bin/Debug/netstandard2.0:这里只有.dll文件,因为.NET Standard是一个API规范,不能直接运行,需要依赖兼容的宿主(比如.NET Core/.NET 5+),这时候就会走到else分支。

额外验证:确认预处理器符号正确

再检查下你的预处理器指令,NET461是官方定义的正确符号,没有拼写错误(注意是全大写,没有空格),这个符号会在编译.NET Framework 4.6.1版本时自动启用,所以只要运行的是该版本的输出,代码就会进入对应的分支。

内容的提问来源于stack exchange,提问作者random

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:07:30