檔案屬性

更新:2007 年 11 月

您可以使用檔案屬性來表示專案系統應對檔案執行的動作。例如,您可以設定檔案屬性來表示檔案是否應編譯或嵌入組建輸出做為資源。

您可以在 [方案總管] 中選取任何檔案,接著在 [屬性] 視窗中檢查它的屬性。Visual Basic 和 Visual C# 檔案有四個屬性:[檔名]、[建置動作]、[自訂工具] 和 [自訂工具命名空間]。

注意事項:

[建置動作]、[自訂工具] 和 [自訂工具命名空間] 是針對進階案例提供的屬性。預設值通常已足夠,不必變更。

檔名屬性

您可以在 [屬性] 視窗中按一下 [檔名] 屬性並輸入新的名稱,將檔案重新命名。請注意,如果您變更檔案的名稱,Visual Studio 將會自動重新命名與其相關聯的所有 .vb 或 .resx 檔。

建置動作屬性

[建置動作] 屬性會指出在執行組建時,Visual Studio 對檔案執行的動作。[建置動作] 可有下列任一值:

  • None - 檔案未包含在專案輸出群組中,而且在建置過程中不加以編譯。範例之一是包含文件的文字檔,例如讀我檔案。

  • Compile - 將檔案編譯到建置輸出。這個設定值是用於程式碼檔。

  • Content - 不編譯檔案,但會將其加入內容輸出群組。例如,這個設定值是 .htm 或其他類型 Web 檔的預設值。

  • Embedded Resource - 將檔案以 DLL 或可執行檔嵌入主要專案建置輸出。這個值通常用於資源檔。

建置動作] 的預設值會視您加入方案的檔案之副檔名而定。例如,如果您將 Visual Basic 專案加入 [方案總管] 中,則 [建置動作] 的預設值為 Compile。這是因為副檔名 .vb 代表可以編譯的程式碼檔案。檔案名稱和副檔名出現於 [方案總管] 中。

請注意,專案中的檔案名稱不會是組件資訊清單中 Managed 資源的識別項 (如需詳細資訊,請參閱組件資訊清單)。識別項將為 namespace.filename.extension,其中 namespace 是 Visual C# 專案的 [預設命名空間] 屬性值或 Visual Basic 專案的 [根命名空間] 屬性值。Filename 及 extension 會保持與其原始命名相同。如果檔案是 .resx 檔,專案系統會在檔案上執行 resgen.exe,建立 .resource 檔。.resource 檔案會嵌入至組件中。因此,組件資訊清單會參考 .resources 檔案,而非 .resx 檔案。

例如,如果您將 MyFile.bmp 檔案加入預設命名空間 (Namespace) 為 MyProj 的專案,並將建置動作設定為 Embedded Resource,MyProj.MyFile.bmp 就會是組件資訊清單中的識別項。如果您接著將 MyFile.resx 檔案加入至專案,預設建置動作就會是內嵌資源,且 MyProj.MyFile.resources 會是組件資訊清單中的識別項。

請注意,當資源編輯器加入影像時,它會將 [建置動作] 設定為 [無],因為 .resx 檔會參考影像檔。在建置時,會將影像拉到從 .resx 檔建立的 .resources 檔中。然後就可以透過 .resx 檔自動產生的強式型別類別,輕鬆存取影像。因此,請不要將這個設定變更為 [內嵌資源],否則就會在組件中包含兩次影像。

如需如何在執行階段存取資源檔 (從 .resx 檔編譯) 的詳細資訊,請參閱 ResourceManager 類別。如需如何在執行階段存取所有其他內嵌檔案和資源的詳細資訊,請參閱 Assembly.GetManifestResourceStream Method

複製到輸出目錄屬性

這個屬性會指定在哪些情況下要將選取的原始程式檔 (Source File) 複製到輸出目錄中。如果永遠不要將檔案複製到輸出目錄中,請選取 [不要複製]。如果一定要將檔案複製至輸出目錄中,請選取 [永遠複製]。如果只要在當檔案比輸出目錄中同名的現有檔案更新時才複製,請選取 [有更新時才複製]。

注意事項:

在智慧型裝置專案中,.dll 或 .exe 檔的新舊是藉由比較 Win32 版本來決定,如下:

如果裝置端的版本低於桌面版本,就會複製檔案。

如果裝置端的版本高於桌面版本,則不會複製檔案。

如果版本相同,會再比較總和檢查碼 (Checksum)。如果總和檢查碼相同,就不會複製檔案;如果總和檢查碼不同,則會複製檔案。

除了 .dll 和 .exe 檔以外,檔案的新舊是完全根據總和檢查碼來決定。

注意事項:

資料檔案將會複製到輸出目錄中名稱為「Data Files」的子資料夾。

自訂工具屬性

自訂工具是一種元件,可用來在設計階段將檔案從一種類型轉換成另一種類型。例如,自訂工具可能是資料集程式碼產生器,用來讀取 XML 結構描述 (.xsd) 檔,並在以程式設計方式公開其資料表和資料行的程式碼檔中產生類別。產品中有可用的自訂工具預先定義清單,這個屬性可讓您檢視檔案所套用的是哪個自訂工具。您可能在極少見的情況下必須變更這個屬性的值。這個屬性的值必須是空白或是內建自訂工具之一。

如果要設定或變更自訂工具,請在 [屬性] 視窗中按一下 [自訂工具] 屬性並輸入自訂工具的名稱。

自訂工具命名空間屬性

如果您將自訂工具指派給您的專案,[自訂工具命名空間] 屬性可讓您指定要指派給由自訂工具所產生之程式碼的命名空間。當您指定 [自訂工具命名空間] 屬性的值時,工具所產生的程式碼會放置在指定的命名空間中。如果屬性為空白,則產生的程式碼會放置在轉換的檔案所在之資料夾的預設命名空間中。如果是 Visual Basic,這就是專案的根命名空間,如果是 Visual C#,這會對應至資料夾的 [預設命名空間] 屬性設定。

請參閱

概念

Visual Studio 中的預設專案範本

Visual Basic 和 Visual C# 中的檔案類型和副檔名

參考

檔案屬性對話方塊、連接字串屬性 (裝置)

其他資源

專案屬性 (Visual Studio)