when I run a .net exe, a corresponding folder is created is created C:\Users\UserName\AppData\Local\AppName
inside this folder, another folder is created AppName_Url_ABCXYZ
inside this folder, yet another folder is created for the assembly version of the .net exe 0.2.28.0
can anyone explain how windows decide to create the second level folder AppName_Url_ABCXYZ?
i am having an issue when i increment my assembly version and perform a single file publish and run the resulting exe, a new AppName_Url_ABCXYZ folder is created containing the new assembly version folder.
this causes issues because it breaks the functionality of Properties.Settings.Default.Upgrade() as the settings to upgrade from are no longer in the expected directory
Good:
-AppData
-Local
-MyApp
-MyApp_Url_ABCXYZ
-0.2.13.0
-0.2.14.0
-0.2.15.0
Bad:
-AppData
-Local
-MyApp
-MyApp_Url_ABC1
-0.2.13.0
-MyApp_Url_ABC2
-0.2.14.0
-MyApp_Url_ABC3
-0.2.15.0
Update:
The information provided by @Richard Deeming indicates that the hash portion of the appdata folder is generated like so:
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);
which makes no sense as the exe path is not changing
this issue does not occur with a brand new WPF .net 6 app and incrementing the assembly version, so its something specific to my application.
examining the resulting exe's in windows explorer does not help, they seem identical.
Update:
I have been unable to determine why this is occurring in my project. I don't even know how to debug it. I've never made any intentional changes to this behavior.








