共用方式為


進階先行編譯設定對話方塊

[進階設定先行編譯] 對話方塊可讓您指定 Web 應用程式如何先行編譯或組件合併。

這個主題適用於下列產品:

存取這個對話方塊

  1. 在 Visual Studio 中,開啟 Web 應用程式專案。

  2. 以滑鼠右鍵按一下 [方案總管] 的專案名稱並選取 [屬性] (C#) 或 (Visual Basic) [MyProject] 顯示 [屬性] 頁面。

  3. 選取 [封裝/發行 Web] 索引標籤。

  4. 在 [部署項目 (適用於所有部署方法)] 區段中,選取 [在發行之前先行編譯這個應用程式] 選項。

  5. 按一下 [進階]。

    Advanced_Precompile_Settings_dialog_box

注意事項注意事項

在此對話方塊中所輸入的設定是您在 [封裝/發行 Web] 索引標籤輸入設定的一部分。它們只適用於 [封裝/發行 Web] 索引標籤已選取的組建組態,當您按一下 [進階] 按鈕時。

UI 項目

如需欄位定義參考,請參閱和 ASP.NET 編譯工具 (Aspnet compiler.exe) 的 aspnet_compiler.exe 選項的詳細資訊。 ASP.NET 合併工具 (Aspnet merge.exe)

  • [做為來源會使用 IIS Metabase 路徑。]
    這個設定對應於 aspnet_compiler.exe -m 命令的選項。 例如, Metabase 路徑可能是/IISExpress/7.5/LM/W3SVC/2/ROOT/MyWeb/,其中 MyWeb 是虛擬目錄。

    此外,如果您的網站包含一個或多個子 Web 網站,這項設定會很有用。 在編譯期間,編譯器處理目錄樹狀結構中的所有檔案。 如果有子 Web 網站,這會導致建置錯誤。 若要避免這些錯誤,您可以指定已編譯,讓 ASP.NET 編譯器略過在 IIS Metabase 中定義的所有子 Web 網站網站上的 IIS Metabase 路徑。

  • [允許先行編譯的網站可以更新]
    這個設定對應於 aspnet_compiler.exe –u 命令的選項。

    如果選取這個選項、頁面和使用者控制項 (.aspx、.ascx 和 .master 檔案) 會以原樣複製到目標資料夾,而且可以更新為文字檔,而不需重新編譯專案。 否則,網頁和使用者控制項的 HTML 標記中移除並編譯成組件輸出。

  • [將所有輸出合併成單一組件。]
    這個設定與 aspnet_merge.exe 命令的 -oassemblyname 選項都相等。

  • [將程式庫元件 (刪除 App_Code.compiled 檔案]
    這個設定對應於 -r aspnet_merge.exe 命令的選項。

    選取這個選項可以在另一個網站可讓項目的 App_Code.dll 組件加入至另一個網站 Bin 資料夾,但不衝突 App_Code.dll 組件。 這可用來建置 .ascx 控制項程式庫會很有用。

  • [合併每個個別的資料夾輸出至其組件。]
    這個設定對應於 aspnet_merge.exe 命令的 -prefixprefixname 選項。

    這個選項可讓您更新您的網站資料夾層級而非更新整個應用程式。 您可以使用 [選擇性組件前置詞] 方塊指定將會附加到任何產生的組件名稱的前置字元。 例如,如果您指定,前置詞 MyCompany,名稱會變成 MyCompany。SubfolderName。

  • [合併所有網頁和控制項輸出至單一組件]
    這個設定對應於 aspnet_merge.exe 命令的 –wassemblyname 選項。

    這個選項可讓您分別更新 UI 項目與更新其他程式碼。 特殊資料夾,例如 App_Code App_WebReferences 等,為每個編譯成個別的組件。 指定目標組件名稱。 [組件名稱] 方塊。

  • 不要合併。會為每個頁面建立個別的組件和控制項輸出。]
    這個設定為不執行 aspnet_merge.exe。 相反地,它會使用 -fixednames aspnet_compiler.exe 命令的選項。

    如果您想執行細微更新部署的網站,這個選項就很有用。 不過,使用編譯 -fixednames 選項停用編譯器的批次最佳化,而且可能會造成大型網站的較長編譯時期。

  • [不要合併]
    這個設定為不執行,而不使用 aspnet_merge.exe aspnet_compiler.exe -fixednames 命令的選項。

請參閱

參考

專案屬性、封裝/發行 Web 索引標籤

概念

Visual Studio 及 ASP.NET 的 Web 應用程式專案部署概觀