Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

184
Vistas
La carpeta AppData/Local generada automáticamente se crea "incorrectamente"

cuando ejecuto un .net exe, se crea una carpeta correspondiente C:\Users\UserName\AppData\Local\AppName

dentro de esta carpeta, se crea otra carpeta AppName_Url_ABCXYZ

dentro de esta carpeta, se crea otra carpeta para la versión ensamblada de .net exe 0.2.28.0

¿Alguien puede explicar cómo Windows decide crear la carpeta de segundo nivel AppName_Url_ABCXYZ ?

tengo un problema cuando incremento mi versión de ensamblado y realizo una publicación de un solo archivo y ejecuto el exe resultante, se crea una nueva carpeta AppName_Url_ABCXYZ que contiene la nueva carpeta de versión de ensamblado.

esto causa problemas porque interrumpe la funcionalidad de Properties.Settings.Default.Upgrade() ya que la configuración para actualizar ya no está en el directorio esperado

Bien:

 -AppData -Local -MyApp -MyApp_Url_ABCXYZ -0.2.13.0 -0.2.14.0 -0.2.15.0

Malo:

 -AppData -Local -MyApp -MyApp_Url_ABC1 -0.2.13.0 -MyApp_Url_ABC2 -0.2.14.0 -MyApp_Url_ABC3 -0.2.15.0

ingrese la descripción de la imagen aquí

Actualizar:

La información proporcionada por @Richard Deeming indica que la parte hash de la carpeta appdata se genera así:

 var uri = "file:///" + fullExePath; //or 'assemblyName.CodeBase' if vshost (you can check the 'FriendlyName') uri = uri.ToUpperInvariant(); var ms = new MemoryStream(); var bSer = new BinaryFormatter(); bSer.Serialize(ms, uri); ms.Position = 0; var sha1 = new SHA1CryptoServiceProvider(); var hash = sha1.ComputeHash(ms); var hashstring = ToBase32StringSuitableForDirName(hash);

lo que no tiene sentido ya que la ruta exe no está cambiando

este problema no ocurre con una nueva aplicación WPF .net 6 e incrementando la versión de ensamblado, por lo que es algo específico de mi aplicación.

examinar los exe resultantes en el explorador de Windows no ayuda, parecen idénticos.

Actualizar:

No he podido determinar por qué ocurre esto en mi proyecto. Ni siquiera sé cómo depurarlo. Nunca he realizado ningún cambio intencional en este comportamiento.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Descargue el paquete completo del proyecto aquí: ConsoleApp1.zip

Para demostrarlo, creemos una aplicación de consola simple:

ingrese la descripción de la imagen aquí

y agregale un enlace:

 <PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.0" />

También agregaremos el archivo de propiedades del proyecto Settings.settings. Como resultado, obtenemos un proyecto con la siguiente configuración:

ingrese la descripción de la imagen aquí

Después de compilar en modo de depuración y ejecutar el resultado de ConsoleApp1.exe, obtenemos la siguiente imagen en la ruta C:\Users\Administrator\AppData\Local\ConsoleApp1:

ingrese la descripción de la imagen aquí

dentro de esta carpeta habrá una carpeta con el número de versión del programa:

ingrese la descripción de la imagen aquí

Al compilar la versión de lanzamiento y ejecutar el resultado de ConsoleApp1.exe, obtenemos la siguiente imagen en la ruta C:\Users\Administrator\AppData\Local\ConsoleApp1:

ingrese la descripción de la imagen aquí

dentro de esta nueva carpeta también habrá una carpeta con el número de versión del programa:

ingrese la descripción de la imagen aquí

Cabe señalar que las versiones de depuración y lanzamiento del programa crean carpetas diferentes.

Cuando cambie la versión del proyecto, aparecerán nuevas versiones en las carpetas de depuración y lanzamiento, respectivamente:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Los programas de depuración y lanzamiento son "versiones" de compilación diferentes del mismo proyecto, y se crean URL diferentes para separarlos.

Descargue el paquete completo del proyecto aquí: ConsoleApp1.zip

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda