Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.4K
Visualizações
Obligar a VS2022 a usar la versión de 32 bits de msbuild

Actualmente estoy investigando la migración de nuestro conjunto de herramientas de VS2013, 15 y 17 a solo VS2022 para optimizar y reducir la cantidad de software necesario para crear nuestra solución. VS2022 tiene todas las piezas que necesitamos, sin embargo, estoy luchando por obtener la solución real para construir a través de VS.

La solución funciona completamente bien si utilizo la versión de 32 bits de msbuild que la acompaña en la ruta C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\MSBuild.exe . Sin embargo, la versión C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\amd64\MSBuild.exe (¿que supongo que usa VS22?) no se compila con los mismos errores que a través de VS22.

Es importante tener en cuenta que nuestra solución/proyectos se basan principalmente en .net framework 2.0 (lamentablemente) y están configurados para la plataforma x86 .

Sigo volviendo al siguiente error SGEN : error : An attempt was made to load an assembly with an incorrect format en varios dll de origen y de terceros. He estado probando combinaciones de ida y vuelta de lo siguiente:

  • cambiando proyectos entre x86 y AnyCPU pero el error aún se produce independientemente del proyecto y las configuraciones de sus referencias
  • desactivando Generate serialization assembly en los proyectos, ya que he visto en alguna parte que las personas han tenido éxito al resolver el error al hacer esto.
  • cambiando ToolsVersion de 4.0 (nuestra configuración actual) a Current y otras versiones

Estoy buscando efectivamente una manera de obligar a VS2022 a usar el msbuild de 32 bits si eso es posible, ya que crea la solución completa sin realizar ningún cambio.

También noté lo siguiente en la ventana de salida de VS:

 Task attempted to find "sgen.exe" using the SdkToolsPath value "". Make sure the SdkToolsPath is set to the correct value and the tool exists in the correct processor specific location below it. (TaskId:109) 4> C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\sgen.exe

¿Configurar SdkToolsPath en la versión de 32 bits resolvería mi problema? En realidad, no he podido encontrar dónde hacer esto para probarlo.

¡Gracias!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Lo que funcionó para nosotros es anular la propiedad del proyecto SGenToolPath manualmente en los archivos .csproj

Agregue lo siguiente:

 <Target Name="SGENBeforeBuild" BeforeTargets="PrepareForBuild"> <PropertyGroup> <!-- workaround for VS2022 x64 building serialization assemblies for x86 targets , see https://stackoverflow.com/questions/70770918/forcing-vs2022-to-use-32-bit-version-of-msbuild --> <SGenToolPath>$(TargetFrameworkSDKToolsDirectory)</SGenToolPath> </PropertyGroup> </Target>

Curiosamente, tuvimos que usar esta solución para algunos proyectos de orientación x86, no para todos.

De hecho, es posible que (nosotros lo hicimos) se encuentre con un problema similar con una serie de pasos de la herramienta de compilación de Visual Studio. Aquí hay una página de MSDN que enumera las propiedades del proyecto para la mayoría de las herramientas de compilación de Visual Studio (2022):
https://docs.microsoft.com/en-us/visualstudio/msbuild/common-msbuild-project-properties?view=vs-2022

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda