When going through some of my applications in the past, I have noticed that compiled into the assembly is information such as where my project is, my username (which happened to be my full name, not my online handle) in Windows, and honestly I'm not sure what else.
Now I know the primary reason of this is when compiled under Debug, as this was file locations to the source files or pdb files (can't recall which).
The question is, what other "personally identifiable" information can end up in compiled assemblies and what can be done to prevent this from ending up in the assembly?
I assume if I simply set the project to Release mode to disable debugging symbols in the compiled assembly, this would achieve my goal, however I'm still curious if anything else I am missing.
I generally have no issue with people knowing I made something, but it did kind of irk me that my full name was in my distributed assemblies without my knowledge.
Depending on your VS setup, it's possible that you might have identifying information in the assembly information (AssemblyInfo.cs
). If you publish via ClickOnce, then there is also the publish information which you can get to from the Publish tab. Both of these tags are completely configurable.
It's also possible that you have a license file for a 3rd-party product that contains identifying information, which must be distributed with the app, either as an external file or embedded resource; if so, there's probably not much you can do about it other than bring it up with the vendor.
Aside from these items, I can't think of any other reason why personal information would be compiled into an assembly. Debug information only goes in the PDB file - without that, you can't get symbols or line numbers. This applies to both debug and release mode.