Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

170
Views
Reinicie .NET AnyCPU exe con diferente bitness

Tengo un .NET exe compilado para "AnyCPU", por lo que teóricamente puede ejecutarse tanto en modo de 32 bits como de 64 bits (en un sistema operativo de 64 bits). Dado que mi exe interactúa fuertemente con MS Office, necesito ejecutarlo con el mismo bitness que la versión de Office instalada . (Por favor, dé por sentado este requisito, con mucho gusto proporcionaré detalles en los comentarios, si está interesado).

Ahora, he pensado en una solución para esto, pero parece más complicado de lo necesario:

  1. Compile dos versiones: MyExe32.exe y MyExe64.exe, dirigidas a x86 y x64, respectivamente, en lugar de AnyCPU.
  2. Cree una aplicación de inicio Launcher.exe, que determina el bitness de la versión de Office instalada localmente (sé cómo hacerlo) y luego inicia MyExe32.exe o MyExe64.exe.

Esto funcionaría, pero prefiero tener un solo MyExe.exe simple con algo como el siguiente pseudocódigo durante el inicio:

 if (Environment.Is64BitProcess && IsOffice32BitInstalled) { // restart myself in a 32-bit process instead of a 64-bit process ??? // <-- this is where I need help }

¿Es eso posible? Si es así, ¿cómo?


Notas: Conozco la utilidad CorFlags , pero prefiero tener una solución que no requiera modificar el exe en tiempo de ejecución.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

¿Reiniciar a través del parámetro de tiempo de ejecución es una opción?

 dotnet run -r win-x86

https://stackoverflow.com/a/63252884/18152293

over 4 years ago · Santiago Trujillo Report

0

Aparentemente, no tengo la reputación suficiente para publicar comentarios, así que publiqué esto como respuesta.

Si, como usted dice, está implementando en una red interna, recomendaría usar un iniciador de todos modos .

De esa manera, los usuarios pueden tener un solo acceso directo de red al iniciador, que no se mueve. El iniciador puede determinar qué bitness se requiere y cuál es la versión más reciente e iniciar el EXE para esa versión.

Si permite que los usuarios vayan directamente al EXE, encontrará problemas con los usuarios que tienen el EXE abierto, por lo que no podrá sobrescribirlo, o tendrá que crear nuevos accesos directos de usuario para cada versión.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!