使用dotPeek导出.NET Core 6 DLL为.csproj时生成.NET Framework项目的问题
解决dotPeek导出.NET Core 6 DLL生成错误.NET Framework项目的问题
问题原因
dotPeek 2022.2.4版本对x86架构的.NET Core 6项目导出逻辑存在判断偏差,误将其识别为.NET Framework项目,导致生成的csproj文件框架配置错误。
解决方法
1. 手动修正生成的.csproj文件
这是最直接的方案:
- 打开dotPeek生成的.csproj文件
- 替换项目根节点为.NET Web SDK的声明:
<Project Sdk="Microsoft.NET.Sdk.Web"> - 修改
<PropertyGroup>里的<TargetFramework>为net6.0,同时保留x86平台配置:<PropertyGroup> <TargetFramework>net6.0</TargetFramework> <PlatformTarget>x86</PlatformTarget> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> </PropertyGroup> - 删除所有.NET Framework特有的
<Reference>节点(.NET Core使用NuGet包引用,无需手动添加系统程序集)
2. 调整dotPeek导出设置
- 在dotPeek中选择导出项目时,在弹出的对话框里,找到目标框架选项,手动指定为
.NET Core 6.0 - 如果找不到该选项,建议将dotPeek升级到最新版本,新版本对.NET 5+系列的支持更完善
3. 更换反编译工具
如果上述方案无效,可以尝试使用ILSpy:它对.NET Core/.NET 6的项目导出支持更精准,能直接生成符合框架要求的csproj文件。
内容的提问来源于stack exchange,提问作者Emanuele Bianchetti
相关产品推荐
相关产品推荐

