在.NET程序集中个人识别(程序员的)信息

在.NET程序集中个人识别(程序员的)信息,.net,anonymity,.net,Anonymity,过去,当浏览我的一些应用程序时,我注意到汇编中包含了一些信息,比如我的项目在哪里,我的用户名(碰巧是我的全名,而不是我的在线句柄),老实说,我不知道还有什么 现在我知道了主要原因是在调试下编译时,因为这是源文件或pdb文件的文件位置(记不起是哪个) 问题是,哪些其他“个人可识别”信息会最终出现在已编译的程序集中,以及如何防止这些信息最终出现在程序集中? 我假设,如果我简单地将项目设置为Release模式以禁用已编译程序集中的调试符号,这将实现我的目标,但是我仍然很好奇我是否还缺少任何东西 一般来

过去,当浏览我的一些应用程序时,我注意到汇编中包含了一些信息,比如我的项目在哪里,我的用户名(碰巧是我的全名,而不是我的在线句柄),老实说,我不知道还有什么

现在我知道了主要原因是在调试下编译时,因为这是源文件或pdb文件的文件位置(记不起是哪个)

问题是,哪些其他“个人可识别”信息会最终出现在已编译的程序集中,以及如何防止这些信息最终出现在程序集中?

我假设,如果我简单地将项目设置为Release模式以禁用已编译程序集中的调试符号,这将实现我的目标,但是我仍然很好奇我是否还缺少任何东西


一般来说,我对人们知道我做了一些事情没有异议,但是我的全名在我不知道的情况下出现在我的分布式程序集中,这让我有点恼火。

您还应该注意XML文档文件,因为它们可以保存“敏感”信息(程序员开玩笑,或者更糟).

所有这些信息都位于Visual Studio中的
项目/属性/应用程序/程序集信息下。大多数是可选的。只需在程序集中清空您不需要的内容。

根据您的VS设置,您可能在程序集信息中有标识信息(
AssemblyInfo.cs
)。如果通过ClickOnce发布,则还可以从“发布”选项卡获取发布信息。这两个标签都是完全可配置的

您还可能拥有第三方产品的许可证文件,其中包含识别信息,必须随应用程序一起分发,作为外部文件或嵌入式资源;如果是这样的话,除了向供应商提出之外,您可能无能为力


除了这些项目之外,我想不出还有什么其他原因可以将个人信息编译成程序集。调试信息只会出现在PDB文件中——没有它,就无法获得符号或行号。这适用于调试模式和发布模式。

为了澄清,我假设如果处于发布模式,我的项目的目录结构将不在程序集中,对吗?好的,实际程序集中没有存储目录结构,除非您想计算硬编码目录的位置,或者您正在从XML文件、配置字符串等中读取它们。顺便说一句,此对话框仅修改AssemblyInfo.cs,因此如果您愿意,可以手动修改此文件。如果您创建pdb文件,pdb的完整路径将包含在程序集中。请澄清,完整路径(可能包括您的用户名)将包含在发布模式中,而不仅仅是在调试模式中,只要编译器生成pdb文件。