Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
Many years I have built my apps under "Any CPU" configuration. But I have update to .Net 5, decide to use the Publish Function, which asking to implicitly choose between "win-x86" and "win-x64" options for target runtime.
I thought the whole deal with the "Any CPU" was to built apps not choosing between x86 and x64? 🤓 What should I do now?
–
–
–
When publishing the app, a target architecture needs to be specified, because the compiler will create an architecture specific stub loader for the project (in Windows, the "exe" file).
In .NET Core, all C# projects (irrespective of whether they're applications or libraries) compile to .dll files. These .dll files are platform independent, or AnyCPU (of course unless they contain code that would only run on certain operating systems, such as P/Invoke calls). The applications compiled this way can be run by using the
dotnet <DllName>
command.
Now this is not convenient, because people expect an "exe" file to start a program with. This exe file (or an equivalent "no-extension" file for unix) is created by the publish command, in addition to copying everything together. The exe file with the same name as the main .dll is the stub-loader that basically calls
dotnet <myapp.dll>
, even if publishing a framework-dependent application. That's why even a program that is targeting AnyCpu needs a platform-dependent publish step.
[Note: On Windows, the exe file might already be created in the build step, as VS uses it. But you'll notice that it always has about the same size, for all your apps.]
–
–
–
–
–
Thanks for contributing an answer to Stack Overflow!
-
Please be sure to
answer the question
. Provide details and share your research!
But
avoid
…
-
Asking for help, clarification, or responding to other answers.
-
Making statements based on opinion; back them up with references or personal experience.
To learn more, see our
tips on writing great answers
.