新建项目无法选择.NET Framework 4.8且exe输出路径异常如何解决
问题根因
两个问题确实存在关联,你新建项目时选错了模板,创建的是面向.NET 5+(SDK风格)的Windows项目,而非传统.NET Framework项目,才会同时出现这两个异常:
- 目标框架列表看不到.NET Framework 4.8、反而显示.NET 5.0/.NET 6.0,是SDK风格项目的默认展示逻辑,和你手头旧的传统.NET Framework项目的配置体系完全不同
- 编译输出自动生成
net5.0-windows子目录存放exe,也是SDK风格项目的默认规则:会自动按目标框架名生成子文件夹分层存放输出文件,传统.NET Framework项目默认不会加这层路径。
解决方案
根据你的实际需求二选一即可:
方案1:需要基于.NET Framework 4.8开发
直接删除当前错建的项目,重新新建项目时选择带(.NET Framework)后缀的对应模板(比如Windows窗体应用(.NET Framework)、控制台应用(.NET Framework)),不要选不带后缀、默认对应.NET 5/.NET 6版本的模板。
新建完成后目标框架列表会和你旧项目完全一致,可以正常选择.NET Framework 4.8,编译输出也不会自动生成版本号子文件夹,直接输出到你指定的根目录即可。
方案2:需要保留当前.NET 5项目,仅修正异常
修复框架选择问题
右键项目选择「编辑项目文件」,将<TargetFramework>节点的取值修改为net48,保存后重载项目,即可切换到.NET Framework 4.8目标框架,后续框架列表也会正常展示对应版本选项。
修复输出路径自动加子目录问题
在项目文件(.csproj)的<PropertyGroup>节点下新增如下配置:
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
保存后重新编译,exe文件就会直接输出到你指定的arbitrage2文件夹根目录,不会再生成net5.0-windows子路径。
如果后续你发现输出路径还自动带x86/x64这类平台名子文件夹,再追加一行配置即可关闭该行为:
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
内容的提问来源于stack exchange,提问作者user4951
相关产品推荐
相关产品推荐

