Share via


/win32manifest (C# 編譯器選項)

使用 /win32manifest 選項,指定將使用者定義的 Win32 應用程式資訊清單檔內嵌至專案的可攜式可執行 (PE) 檔。

/win32manifest: filename

引數

  • filename
    自訂資訊清單檔的名稱和位置。

備註

Visual C# 編譯器 (Compiler) 預設會內嵌應用程式資訊清單,而這個資訊清單指定 "asInvoker" 要求的執行層級。編譯器會在建置 (Build) 可執行檔的相同資料夾中建立資訊清單,這個資料夾通常是 bin\Debug (使用 Visual Studio 時則是 bin\Release) 資料夾。如果您要提供自訂資訊清單,例如指定 "highestAvailable" 或 "requireAdministrator" 要求的執行層級,請使用這個選項指定檔案名稱。

注意事項注意事項

此選項和 /win32res (C# 編譯器選項) 選項是互斥 (Mutually Exclusive) 的選項。 如果您嘗試在相同命令列中同時使用兩個選項,會發生建置錯誤。

沒有應用程式資訊清單以指定要求的執行層級的應用程式,會受制於 Windows Vista 中「使用者帳戶控制」功能下的檔案/登錄虛擬化。 如需虛擬化的詳細資訊,請參閱 Windows Vista 開發人員小故事:Windows Vista 應用程式開發的使用者帳戶控制 (UAC) 需求 (英文)。

如果符合下列其中一個條件,應用程式便受制於虛擬化:

  • 使用 /nowin32manifest 選項且未在稍後的建置步驟中提供資訊清單,或使用 /win32res 選項提供資訊清單做為 Windows Resource (.res) 檔案的一部分。

  • 提供的自訂資訊清單未指定要求的執行層級。

Visual Studio 會建立預設的 .manifest 檔案,並儲存在與執行檔並列的偵錯和發行目錄中。 在任何文字編輯器中建立資訊清單,然後將檔案新增至專案,就可以新增自訂資訊清單。 您也可以用滑鼠右鍵按一下 [方案總管] 中的 [專案] 圖示,然後按一下 [加入新項目],再按一下 [應用程式資訊清單檔案]。 在您加入新的或現有的資訊清單檔之後,這個資訊清單檔會出現在 [資訊清單] 下拉式清單中。 如需詳細資訊,請參閱專案設計工具、應用程式頁 (C#)

您可以使用 /nowin32manifest (C# 編譯器選項) 選項,提供應用程式資訊清單做為自訂建置後步驟,或做為 Win32 資源檔的一部分。 如果您要應用程式受制於 Windows Vista 上的檔案或登錄虛擬化,也請使用這一個選項。 這樣會防止編譯器在可攜式可執行檔 (PE) 中建立和內嵌預設資訊清單。

範例

下列範例顯示 Visual C# 編譯器插入至 PE 的預設資訊清單。

注意事項注意事項

編譯器會將標準應用程式名稱 " MyApplication.app " 插入至 xml。 這是讓應用程式在 Windows Server 2003 Service Pack 3 上執行的解決方法。

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="asInvoker"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

請參閱

參考

/nowin32manifest (C# 編譯器選項)

其他資源

C# 編譯器選項

專案屬性 (Visual Studio)