-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document tooling workaround for projects targeting x86 #4924
Comments
Have you changed the default project in visual studio integrated console to the the project that include the context? |
I've seen this before. Simply put this is expected behaviour. I am almost certain that the .Net SDK you have installed is the x64 version. The thing is when you do the migration, .Net (usually Obviously targeting x64 will work. Is there a particular need to specifically use x86? If so, it would be better to have the x86 .Net SDK installed and used as default |
@m1nh101 when running x64 everything works, so you can assume that I did that :)
@ChrisJollyAU Yes, there is. I am referencing a dll API from this project and it only works in x86. But I haven't downloaded any specific .NET SDK apart from what VS Installer installed. I will try to download x86 SDK and try with it. |
@AndriySvyryd the steps provided above reliably replicate it. Even with both x64 and x86 runtimes installed (on .NET/EF 9.0). |
I you are in Visual Studio you are going to need to point it at the x86 dotnet manually. VS won't automatically use the x86. Best way to test in the developer command line and specifically use the full path to the dotnet executable for the We had a discussion on this exact topic on EFCore.Jet CirrusRedOrg/EntityFrameworkCore.Jet#95 |
But the report above is using PMC, not |
True. But PMC is going to use x64 unless you change PATH to point to the x86 dotnet |
@AndriySvyryd is this something we want to deal with out of the box? Or at least document? |
It would be very risky to try to manipulate PATH ourselves. We'll document. |
@AndriySvyryd Probably best solution overall, would be in the Edit: this won't work currently and is a suggestion for a feature |
File a bug
When setting a WinForms project with
<PlatformTarget>x86</PlatformTarget>
I cannot add a migration because of the following error:Could not load assembly 'EFCorex86MigrationFail'. Ensure it is referenced by the startup project 'EFCorex86MigrationFail'.
. That happens when Context is in the startup project. When having a solution where Context is in a separate project, this error happens:System.IO.FileNotFoundException: Could not load file or assembly 'EFCorex86MigrationFail, Culture=neutral, PublicKeyToken=null'.
Include your code
Reproduction: https://github.com/twojnarowski/EFCorex86MigrationFail
Steps: Create WinForms app on .NET8, add 3 EF Core nugets - Design, Tools and SQLServer. Create a Context class. Run
add-migration
command - everything works. Change project settings to target platform x86, runadd-migration
, migration fails.Include verbose output
Issue when Context in Startup Project:
Issue when Context in a separate project:
Include provider and version information
EF Core version: 8.0.11
Database provider: Microsoft.EntityFrameworkCore.SqlServer
Target framework: NET 8.0
Operating system: Windows 11
IDE: Visual Studio 2022 17.4
Workaround:
Set project back to
Any CPU
, create migration, update database. Return project back tox86
, everything works.The text was updated successfully, but these errors were encountered: