2010-01-11 79 views
10

在過去經歷我的一些應用程序時,我注意到編譯到程序集中的信息是諸如我的項目在哪裏,我的用戶名(恰好是我的全名,而不是我的在線句柄)在Windows中,老實說我不知道​​還有什麼。在.NET程序集中個人識別(程序員的)信息

現在我知道這主要的原因是當在Debug下編譯時,因爲這是源文件或pdb文件的文件位置(不能記起哪個)。

問題是,什麼其他「個人可識別的」信息可以在編譯的程序集中結束,以及可以做些什麼來防止它在程序集中結束?

我假設我只是簡單地將項目設置爲釋放模式來禁用已編譯程序集中的調試符號,這將實現我的目標,但是我仍然好奇我是否缺少其他任何東西。

我通常沒有人知道我做了什麼事情的問題,但它確實讓我感到憤怒,我的全名在我的分佈式程序集中而不知道。

回答

1

根據您的VS設置,您可能在裝配信息(AssemblyInfo.cs)中有識別信息。如果您通過ClickOnce發佈,則還可以從「發佈」選項卡獲取發佈信息。這兩個標籤都是完全可配置的。

您也有可能獲得包含標識信息的第三方產品的許可證文件,標識信息必須隨應用程序一起分發,作爲外部文件或嵌入式資源;如果是這樣,除了向供應商提供這些信息外,你可以做的並不多。

除了這些項目,我想不出任何其他原因爲什麼個人信息會被編譯成一個程序集。調試信息只會出現在PDB文件中 - 沒有這些信息,您將無法獲取符號或行號。這適用於調試和發佈模式。

0

您還應該注意XML文檔文件,因爲它們可以保存「敏感」信息(或者更糟糕的程序員笑話)。

1

所有這些信息都在Visual Studio下的Project/Properties/Application/Assembly Information。大部分是可選的。只要把你不想在裝配中弄明白的地方。

+1

只是澄清,我是否正確承擔我的項目的目錄結構不會在程序集中,如果在釋放模式? – 2010-01-11 23:21:29

+0

AFAIK沒有存儲在實際程序集中的目錄結構,除非要計算硬編碼目錄的位置,或者正在從XML文件,配置字符串等中讀取它們。 – 2010-01-11 23:23:26

+0

順便提一下,此對話框只是修改AssemblyInfo.cs ,所以你可以手動修改這個文件,如果你願意。 – 2010-01-11 23:26:48