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

867
Visualizações
Abra el proyecto .net framework 4.5 en VS 2022. ¿Hay alguna solución?

¿Hay alguna forma de abrir y trabajar en el proyecto .net framework 4.5 en visual studio 2022 ?

Puede que el problema no sea con VS2022, pero como el paquete de desarrollador .NET .net framework 4.5 ya no está disponible... mi proyecto no se puede cambiar de versión de destino... ¿Hay alguna solución?

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

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

0

  • Descargue Microsoft.NETFramework.ReferenceAssemblies.net45 desde nuget.org
  • Abra el paquete como zip
  • copie los archivos de build\.NETFramework\v4.5\ a C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5

Para obtener más detalles: creación de un proyecto destinado a .NET Framework 4.5 en Visual Studio 2022

over 4 years ago · Santiago Trujillo Relatório

0

Aquí hay una solución automatizada. Sigue los pasos en esta respuesta: https://stackoverflow.com/a/70109092/569302 Cuando copia los archivos, puede aparecer un cuadro de diálogo en el que debe hacer clic para reemplazar los archivos que ya existen.

( Nota: es posible que deba actualizar la "versión" "1.0.2" a lo que sea más reciente si hay un paquete NuGet más nuevo )

Ejecute await DevHelpers.Download();

 using Microsoft.VisualBasic.FileIO; using System; using System.Collections.Generic; using System.IO.Compression; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace j.Dev { public class DevHelpers { public static async Task Download() { var version = "1.0.2"; var name = "Framework45-" + DateTimeToFileString(DateTime.Now); var fileName = $"{name}.zip"; var url = $"https://www.nuget.org/api/v2/package/Microsoft.NETFramework.ReferenceAssemblies.net45/{version}"; await DownloadFile(fileName, url); ZipFile.ExtractToDirectory(fileName, name); var from = Path.Join(name, @"build\.NETFramework\v4.5\"); var to = @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5"; FileSystem.CopyDirectory(from, to, UIOption.AllDialogs); } private static string DateTimeToFileString(DateTime d) { return d.ToString("yyyy-dd-M--HH-mm-ss"); } private static async Task DownloadFile(string fileName, string url) { var uri = new Uri(url); HttpClient client = new HttpClient(); var response = await client.GetAsync(uri); using (var fs = new FileStream( fileName, FileMode.CreateNew)) { await response.Content.CopyToAsync(fs); } } } }

En mi caso, necesitaba descargar 4.0 Y 4.5, así que aquí está el código que descarga tanto 4.0 como 4.5:

 using Microsoft.VisualBasic.FileIO; using System.IO.Compression; namespace j.Dev { /// <summary> /// Example Usage: await DevHelpers.DownloadAndCopyFramework4_0And4_5(); /// </summary> public class DevHelpers { public static async Task DownloadAndCopyFramework4_0And4_5() { await DownloadAndCopyFramework4_0(); await DownloadAndCopyFramework4_5(); } public static async Task DownloadAndCopyFramework4_5() { await DownloadAndCopyFrameworkGeneric("net45", "v4.5", "1.0.2"); } public static async Task DownloadAndCopyFramework4_0() { await DownloadAndCopyFrameworkGeneric("net40", "v4.0", "1.0.2"); } public static async Task DownloadAndCopyFrameworkGeneric(string netVersion, string folder, string nugetVersion) { var name = netVersion + "-" + DateTimeToFileString(DateTime.Now); var fileName = $"{name}.zip"; var url = $"https://www.nuget.org/api/v2/package/Microsoft.NETFramework.ReferenceAssemblies.{netVersion}/{nugetVersion}"; await DownloadFile(fileName, url); ZipFile.ExtractToDirectory(fileName, name); var from = Path.Join(name, @"build\.NETFramework\" + folder); var to = @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\" + folder; FileSystem.CopyDirectory(from, to, UIOption.AllDialogs); } private static string DateTimeToFileString(DateTime d) { return d.ToString("yyyy-dd-M--HH-mm-ss"); } private static async Task DownloadFile(string fileName, string url) { var uri = new Uri(url); HttpClient client = new HttpClient(); var response = await client.GetAsync(uri); using (var fs = new FileStream( fileName, FileMode.CreateNew)) { await response.Content.CopyToAsync(fs); } } } }
over 4 years ago · Santiago Trujillo Relatório

0

Para .NET 4.0, este comando lo instalará por usted si tiene los archivos de Visual Studio 2019 almacenados en caché:

 msiexec.exe /i "%ALLUSERSPROFILE%\Microsoft\VisualStudio\Packages\Microsoft.Net.4.TargetingPack,version=4.0.30319.1\netfx_dtp.msi" EXTUI=1

Para .NET 4.5, esto podría funcionar, aunque no lo he probado:

 msiexec.exe /i "%ALLUSERSPROFILE%\Microsoft\VisualStudio\Packages\Microsoft.Net.4.5.2.TargetingPack,version=4.5.51651.1\netfx_452mtpack.msi" EXTUI=1
over 4 years ago · Santiago Trujillo Relatório

0

Si bien todas las soluciones propuestas, e incluso las aceptadas, funcionarán, ninguna de ellas es el enfoque preferido .

Lo único que debe hacer es agregar una referencia al paquete NuGet de la siguiente manera:

 <ItemGroup> <PackageReference Include="microsoft.netframework.referenceassemblies.net45" Version="1.0.2" PrivateAssets="All" /> </ItemGroup>

Puede realizar este cambio directamente en *.csproj o a través de la interfaz de usuario del Administrador de paquetes en Visual Studio. Las extensiones de MSBuild en el paquete se encargarán del resto de la magia . No hay scripts para escribir, archivos para copiar o permisos para otorgar. Esto funcionará sin elevación, que sería necesario escribir en %PROGRAMFILES% .

Establecer PrivateAssets="All" hará que el paquete haga referencia solo en tiempo de diseño. No se seleccionará ni incluirá como una dependencia transitiva si su destino también crea un paquete NuGet.

Roslyn Problema 56161: Quitar el requisito del paquete de orientación de .NET 4.5 confirma además que esta es la forma en que se usan los ensamblajes de referencia cuando no está instalado un paquete de orientación. Este enfoque es útil cuando no desea instalar un paquete de orientación o no está disponible, por ejemplo, en un servidor de compilación sin Visual Studio.

Me encontré con el mismo problema después de desinstalar Visual Studio 2019. La compilación funcionó como se esperaba desde Visual Studio y la CLI después de agregar esta referencia de paquete.

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