共用方式為


.NET 項目設計工具

使用 項目設計工具 來指定 .NET Core 和 .NET 5+ 的專案設定和屬性。 針對 .NET Framework,請參閱 什麼是 .NET 專案設計工具?

若要存取項目設計工具,請在 [方案總管]中,選擇項目節點(而非 方案 節點)。 然後選擇功能表列上 [專案>屬性]項目設計工具 隨即出現。

注意

您的電腦可能會顯示本文中某些 Visual Studio 使用者介面元素的不同名稱或位置。 您可能使用不同的 Visual Studio 版本或不同的環境設定。 如需詳細資訊,請參閱 個人化 IDE

應用程式、一般設定

下列選項可讓您設定應用程式的一般設定。

輸出類型

指定要建置的應用程式類型。 值會根據項目類型而有所不同。 例如,針對 主控台應用程式 專案,您可以將 Windows 應用程式、控制台應用程式類別庫 指定為輸出類型。

如需 輸出類型 屬性的詳細資訊,請參閱 /target (C# 編譯程式選項)

如需如何以程式設計方式存取此屬性的詳細資訊,請參閱 OutputType

Target Framework

指定應用程式的目標 .NET 版本。 此選項可能會有不同的值,視計算機上安裝的 .NET 版本而定。

針對以 .NET Core 或 .NET 5+ 為目標的專案,可用的版本可能會如下所示:

Visual Studio 2022 中 .NET Core 專案目標 Framework 版本的螢幕快照。

注意

針對 ClickOnce 應用程式,必要條件對話框 中所列的必要條件套件會在您第一次開啟對話框時自動設定。 如果您後續變更專案的目標架構,則必須手動選取必要條件以符合新的目標架構。

如需詳細資訊,請參閱Framework 目標概觀。

目標OS

指定項目的目標操作系統。 結合目標架構,這會產生 .NET 5+ OS 特定 TF

Startup 物件

定義應用程式載入時要呼叫的進入點。 一般而言,這會設定為應用程式中的主要窗體,或設定為應用程式啟動時應該執行的 Main 程式。 因為類別庫沒有進入點,因此此屬性的唯一選項是 (未設定)

根據預設,在 WPF 應用程式專案中,此選項會設定為 (未設定)。 另一個選項是 [projectname].App。 在 WPF 專案中,您必須設定啟動 URI,以在應用程式啟動時載入 UI 資源。 若要這樣做,請在項目中開啟 Application.xaml 檔案,並將 StartupUri 屬性設定為專案中的 .xaml 檔案,例如 Window1.xaml。 如需可接受的根元素清單,請參閱 StartupUri。 您也必須在專案中的類別中定義 public static void Main() 方法。 此類別會顯示在 Startup 物件 列表中,ProjectName.ClassName。 然後,您可以選取 類別作為啟動物件。

如需詳細資訊,請參閱 /main (C# 編譯程式選項)。 若要以程式設計方式存取此屬性,請參閱 StartupObject

元件名稱

指定將保存元件指令清單的輸出檔名稱。 變更此屬性也會變更輸出名稱 屬性

您也可以使用 /out /out (C# 編譯程式選項),從命令行進行這項變更。

若要以程式設計方式存取此屬性,請參閱 AssemblyName

預設命名空間

指定新增至專案之檔案的基底命名空間。

如需在程序代碼中建立命名空間的詳細資訊,請參閱 命名空間

若要以程式設計方式存取此屬性,請參閱 RootNamespace

應用程式、Win32 資源設定

圖示

設定您想要作為程式圖示使用的 .ico 檔案。 按兩下 [瀏覽 瀏覽現有的圖形,或輸入您想要的檔名。 如需詳細資訊,請參閱 /win32icon (C# 編譯程序選項)

若要以程式設計方式存取此屬性,請參閱 ApplicationIcon

如需建立圖示的相關信息,請參閱 影像編輯器中的圖示

資源

[資源] 選項可協助您設定應用程式的資源設定。 默認會啟用 圖示指令清單 選項。 這可讓您選取自己的圖示,或選取不同的指令清單產生選項。 除非您提供專案的資源文件,否則請保留選取此單選按鈕。

如果您選取 [資源檔案],請設定項目的資源檔。 輸入路徑名稱,或使用 [流覽] 按鈕,將 Win32 資源檔新增至專案。 如需詳細資訊,請參閱 建立 .NET 應用程式的資源檔案

指令清單

在 [用戶帳戶控制] (UAC) 下的 Windows 上執行應用程式時,選取指令清單產生選項。 這個選項可以有下列值:

  • 內嵌具有預設設定的指令清單。 支援 Visual Studio 在 Windows 上運作的一般方式,也就是在應用程式的可執行檔中內嵌安全性資訊,並指定 requestedExecutionLevelAsInvoker。 這是預設選項。

  • 建立沒有指令清單的應用程式。 這個方法稱為 虛擬化。 使用此選項來與先前的應用程式相容。

  • 使用自訂指令清單。 可讓您輸入路徑或瀏覽至專案的自訂指令清單。

全域 Usings 設定

隱含全域使用

使用啟用或停用全域 ,這可讓您使用命名空間中定義的類型,而不指定完整命名空間。

管理隱含全域使用

手動新增和刪除全域用法,以用於您的專案。

建置、一般設定

條件式編譯符號

指定要執行條件式編譯的符號。 以分號分隔符號 (“;” ) 如需詳細資訊,請參閱 /define (C# 編譯程式選項)

偵錯自定義符號

指定偵錯組建的條件式編譯符號。 默認偵錯符號會顯示在字串中,並以分號分隔。

發行自定義符號

指定發行組建的條件式編譯符號。 默認發行符號會顯示在字串中,並以分號分隔。

平台目標

指定要以輸出檔為目標的處理器。 針對任何 32 位 Intel 相容處理器選擇 [x86],針對任何 64 位 Intel 相容處理器選擇 [x64],針對 ARM 處理器選擇 [ARM],或選擇 [任何 CPU] 來指定任何處理器可接受。 任何 CPU 都是項目的預設值,因為它可讓應用程式在最廣泛的硬體上執行。

如需詳細資訊,請參閱 /platform (C# 編譯程式選項)

可為 Null 的

指定全專案 C# 可為 Null 的內容。 這個 UI 選項是在 Visual Studio 16.5 中引進的,而且只會針對使用 C# 8.0 或更新版本的項目啟用。

如需詳細資訊,請參閱 可為 Null 的內容

產生元件資訊

指定 封裝相關的項目屬性 是否轉換成元件屬性。 如需詳細資訊,請參閱 generateAssemblyInfo 屬性

不安全的程式代碼

允許使用 unsafe 關鍵詞編譯的程式代碼。 如需詳細資訊,請參閱/unsafe (C# 編譯程式選項) 。

優化程式代碼

啟用或停用編譯程式所執行的優化,讓您的輸出檔案變得更小、更快且更有效率。 如需詳細資訊,請參閱 /optimize (C# 編譯程式選項)

偵錯符號

指定編譯程式所產生的偵錯資訊類型。 如需如何設定應用程式偵錯效能的資訊,請參閱 DebugType 編譯程序選項。 這個設定具有下列選項:

  • 指定不會產生偵錯資訊。

  • 完整

    啟用將調試程式附加至執行中的程式。

  • pdbonly

    允許在調試程式中啟動程式時進行原始程式碼偵錯,但只會在執行中的程式附加至調試程式時顯示組合器。

  • 可攜式

    產生 。PDB 檔案是非平台專屬的可攜式符號檔,可提供其他工具,特別是調試程式、主要可執行檔中內容及其產生方式的相關信息。 如需詳細資訊,請參閱 可攜式 PDB

  • 內嵌

    將可攜式符號資訊內嵌至元件。 沒有外部 。會產生 PDB 檔案。

如需詳細資訊,請參閱 /debug (C# 編譯程式選項)

建置、錯誤和警告設定

下列設定可用來設定建置程式的錯誤和警告選項。

警告層級

指定要針對編譯程式警告顯示的層級。 如需詳細資訊,請參閱 /warn (C# 編譯程式選項)

隱藏特定警告

封鎖編譯程式產生一或多個特定警告的能力。 以逗號或分號分隔多個警告編號。 如需詳細資訊,請參閱 /nowarn (C# 編譯程式選項)

將警告視為錯誤

選取是否在建置程式期間將警告視為錯誤。 如需詳細資訊,請參閱 /warnaserror (C# 編譯程式選項)

將特定警告視為錯誤

指定哪些警告被視為錯誤。 以逗號或分號分隔多個警告編號。

提示

如果您不想將程式代碼分析警告視為錯誤,請參閱 程式代碼分析常見問題

建置、輸出設定

下列設定可用來設定建置程序的輸出選項。

基底輸出路徑

指定此項目的組態輸出檔位置。 在此方塊中輸入組建輸出的路徑,或選擇 [流覽] 按鈕來指定路徑。 路徑是相對的;如果您輸入絕對路徑,則會將它儲存為相對路徑。 默認路徑為 bin\Debug 或 bin\Release\。

透過簡化的建置組態,專案系統會決定要建置偵錯或發行版本。 [偵錯] 功能表 (F5) 的 [組建] 命令,不論您指定的 輸出 路徑為何,都會將組建放在偵錯位置。 不過,[建置] 功能表的 [組建] 命令會將它放在您指定的位置。 如需詳細資訊,請參閱 瞭解建置組態

參考元件

指定是否要產生包含專案公用 API 的 參考元件

檔案檔案

指定將處理檔批註的檔案名。 如需詳細資訊,請參閱 /doc (C# 編譯程式選項)

建置、事件設定

如需組建事件設定的資訊,請參閱 指定建置事件 (C#)

建置、發佈設定

發佈

允許 MSBuild 發佈目標執行。 如需詳細資訊,請參閱 MSBuild IsPublishable 屬性。

已修剪的發佈

指定是否在發佈程式期間啟用修剪。 如需詳細資訊,請參閱Trim 相關屬性。

發佈原生 AOT

指定是否要產生獨立且已預先編譯為機器碼的應用程式。 如需詳細資訊,請參閱 原生 AOT 部署

建置、強式命名設定

簽署元件

選取此複選框以簽署元件,並建立強名稱金鑰檔案。 如需使用 項目設計工具簽署元件的詳細資訊,請參閱 如何:簽署元件 (Visual Studio)。 如需詳細資訊,請參閱強名稱元件。

此選項會使用 Windows 軟體開發工具套件 (SDK) 所提供的 Al.exe 工具來簽署元件。 如需 Al.exe的詳細資訊,請參閱 如何:使用強名稱簽署元件

強名稱金鑰檔案 清單

可讓您指定用來簽署元件的新或現有強名稱金鑰檔案。 選取 [<流覽...> 以選取現有的密鑰檔案。

延遲符號

選取此複選框以啟用延遲簽署。 如需詳細資訊,請參閱 延遲簽署元件

請注意,延遲簽署的專案將不會執行且無法進行偵錯。 不過,您可以使用 Sn.exe (強名稱工具) 搭配 -Vr 選項,在開發期間略過驗證。

注意

當您簽署元件時,可能不一定可以存取私鑰。 例如,組織可能有開發人員每天無法存取的嚴密保護密鑰組。 公鑰可能可用,但私鑰的存取僅限於少數個人。 在這種情況下,您可以使用 延遲部分簽署 提供公鑰,延遲新增私鑰,直到元件移交為止。

建置、進階設定

下列選項可讓您設定進階組建設定。

語言版本

/langversion (C# 編譯程式選項) 的連結,其提供如何根據專案的目標架構選擇默認語言版本的相關信息。

檢查算術溢位

指定不在 檢查範圍中的整數算術語句 或未核取的 關鍵詞 ,而且會導致數據類型範圍以外的值會造成運行時間例外狀況。 如需詳細資訊,請參閱 /checked (C# 編譯程式選項)

決定性

指定是否要從相同的輸入來源產生位元組對等的輸出。 如需詳細資訊,請參閱 C# 編譯程序選項,以控制程式代碼產生

內部編譯程式錯誤報告

指定是否要將編譯程序錯誤報告至Microsoft。 如果設定為 提示 (預設值),則當發生內部編譯程式錯誤時,您會收到提示,讓您選擇以電子方式傳送錯誤報告給Microsoft。 如果設定為 [傳送,則會自動傳送錯誤報告。 如果設定為 佇列,則會將錯誤報告排入佇列。 如果設為 ,則只會在編譯程式的文字輸出中報告錯誤。 如需詳細資訊,請參閱/errorreport (C# 編譯程式選項) 。

檔案對齊

指定輸出檔中的區段大小。 有效值為 5121024204840968192。 這些值會以位元組為單位來測量。 每個區段都會對齊這個值之倍數的界限,並影響輸出檔案的大小。 如需詳細資訊,請參閱 /filealign (C# 編譯程式選項)

套件、一般設定

本節中的屬性可用來設定套件,通常對應至 NuGet .nuspec 檔案中的屬性。 如需詳細資訊,請參閱 .nuspec 檔案

套件、授權設定

套件授權

指定是否要在套件中包含授權表達式或授權檔案。 如需詳細資訊,請參閱 授權 專案。

套件、符號設定

產生符號套件

指定是否要建立符號套件以進行偵錯。 如需詳細資訊,請參閱 建立符號套件 (.snupkg)

程式代碼分析,所有分析器設定

在組建 上執行

指定當您建置專案時是否要執行原始程式碼分析。 如需詳細資訊,請參閱 停用 .NET的原始程式碼分析。

在即時分析 上執行

指定當您建置專案時,是否要執行即時原始程式碼分析。 如需詳細資訊,請參閱 停用 .NET的原始程式碼分析。

程式代碼分析、.NET 分析器設定

在建置 上強制執行程式代碼樣式

指定建置專案時是否報告 .NET 程式代碼樣式違規。 如需詳細資訊,請參閱 在建置上強制執行程式代碼樣式。

啟用 .NET 分析器

啟用或停用 .NET 編譯程序平臺 (Roslyn) 分析器。 如需詳細資訊,請參閱 啟用或安裝第一方 .NET 分析器

分析層級

指定要在項目中執行的分析器集合。 如需詳細資訊,請參閱程式代碼分析概觀一文中的 最新更新 一節。

偵錯、一般設定

選取連結以開啟偵錯啟動配置檔 UI。 此 UI 可讓您新增和設定偵錯時要使用的不同設定檔。 每個設定檔名稱都會在 [開始偵錯] 清單中顯示為 [開始偵錯] 選項。

針對 ASP.NET Core 專案,啟動設定檔 UI 中的設定會對應至專案 launchSettings.json 檔案中的設定。 如需如何在 ASP.NET 開發中使用這個檔案的詳細資訊,請參閱 開發和 launchSettings.json

資源、一般設定

選取連結以開啟 RESX 元件資源檔。 如需詳細資訊,請參閱 設定頁面、專案設計工具

另請參閱

已修改的項目屬性 UI