基于.NET Core 3的WPF项目:如何让EF Core迁移用x64平台编译?
解决EF Core迁移命令使用x64平台编译的问题
这个问题我之前也碰到过——虽然你在VS2019里把项目目标平台改成了x64,但dotnet ef命令默认可能还是会沿用AnyCPU配置来编译项目,自然就触发了那个不支持AnyCPU的包的错误。下面给你几个可行的解决办法:
方法1:执行迁移命令时直接指定平台
最简单的方式就是在执行迁移命令时,手动加上--platform参数指定x64平台:
dotnet ef migrations add YourMigrationName --platform x64
这个方法每次执行都要带参数,但胜在直接灵活,适合临时或偶尔执行迁移的场景。
方法2:修改项目文件,固定默认编译平台
如果你不想每次都手动加参数,可以直接修改项目的.csproj文件,把默认编译平台锁死为x64:
- 右键你的WPF项目,选择「编辑项目文件」
- 在主
<PropertyGroup>节点中添加或修改<PlatformTarget>元素:
<PropertyGroup> <!-- 保留原有配置 --> <PlatformTarget>x64</PlatformTarget> </PropertyGroup>
- 如果你有Debug/Release等多配置环境,可以确保每个配置组都设置了x64:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' "> <PlatformTarget>x64</PlatformTarget> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> <PlatformTarget>x64</PlatformTarget> </PropertyGroup>
保存文件后重新执行迁移命令,dotnet ef就会默认用x64编译项目了。
方法3:在VS包管理器控制台(PMC)中指定平台
如果你习惯用VS的PMC来操作迁移:
- 先在VS工具栏的「解决方案平台」下拉框中,切换到x64(确保不是AnyCPU)
- 在PMC中先指定目标项目:
Set-DefaultProject YourDataContextProjectName
- 然后正常执行迁移命令:
Add-Migration YourMigrationName
最后建议你清理项目的bin和obj文件夹,重新编译一次,避免残留的AnyCPU编译文件干扰迁移过程。
内容的提问来源于stack exchange,提问作者Chao Xie
相关产品推荐
相关产品推荐

