重新簽署應用程式和部署資訊清單

針對 Windows Forms 應用程式、Windows Presentation Foundation 應用程式 (xbap) 或 Office 解決方案中應用程式資訊清單的部署屬性進行變更之後,必須使用憑證重新簽署應用程式和部署資訊清單。 這項程序有助於確保不會在終端使用者電腦上安裝遭到竄改的檔案。

可能需要重新簽署資訊清單的另一個案例,是當客戶想要使用自己的憑證簽署應用程式和部署資訊清單。

重新簽署應用程式和部署資訊清單

此流程假設您已經對應用程式資訊清單檔 (.manifest) 進行變更。 如需詳細資訊,請參閱如何:變更部署屬性

注意

在 .NET Core 3.1 和 .NET 5 或更新版本的 ClickOnce 中使用 dotnet-mage.exe,而不是使用 Mage.exe。 如需詳細資訊,請參閱適用於 .NET 的 ClickOnce

使用 Mage.exe 重新簽署應用程式和部署資訊清單

  1. 開啟 [Visual Studio 命令提示字元] 視窗。

  2. 將目錄變更為包含要簽署之資訊清單檔的資料夾。

  3. 輸入下列命令以簽署應用程式資訊清單檔。 將 ManifestFileName 取代為資訊清單檔的名稱,加上延伸模組名稱。 將憑證取代為憑證檔案的相對或完整路徑,並及密碼取代為認證密碼。

    mage -sign ManifestFileName.manifest -CertFile Certificate -Password Password
    

    例如,您可以執行下列命令來簽署增益集、Windows Form 應用程式或 Windows Presentation Foundation 瀏覽器應用程式的應用程式資訊清單。 不建議將 Visual Studio 建立的暫存憑證部署至生產環境。

    mage -sign WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -sign ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -sign WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  4. 輸入下列命令以更新並簽署部署資訊清單檔,並取代上一個步驟中的預留位置名稱。

    mage -update DeploymentManifest -appmanifest ApplicationManifest -CertFile Certificate -Password Password
    

    例如,您可以執行下列命令來更新和簽署 Excel 增益集、Windows Forms 應用程式或 Windows Presentation Foundation 瀏覽器應用程式的部署資訊清單。

    mage -update WindowsFormsApplication1.application -appmanifest WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -update ExcelAddin1.vsto -appmanifest ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -update WpfBrowserApplication1.xbap -appmanifest WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  5. 或者,將主要部署資訊清單 (publish\<appname>.application) 複製到您的版本部署目錄 (publish\Application Files\<appname>_<version>)。

更新並重新簽署應用程式和部署資訊清單

此流程假設您已經對應用程式資訊清單檔 (.manifest) 進行變更,但還有其他檔案已更新。 更新檔案時,也必須更新代表檔案的雜湊。

使用 Mage.exe 更新並重新簽署應用程式和部署資訊清單

  1. 開啟 [Visual Studio 命令提示字元] 視窗。

  2. 將目錄變更為包含要簽署之資訊清單檔的資料夾。

  3. 刪除發佈輸出資料夾中的檔案的 .deploy 副檔名。

  4. 輸入下列命令,使用已更新檔案的新雜湊來更新應用程式資訊清單,並簽署應用程式資訊清單檔。 將 ManifestFileName 取代為資訊清單檔的名稱,加上延伸模組名稱。 將憑證取代為憑證檔案的相對或完整路徑,並及密碼取代為認證密碼。

    mage -update ManifestFileName.manifest -CertFile Certificate -Password Password
    

    例如,您可以執行下列命令來簽署增益集、Windows Form 應用程式或 Windows Presentation Foundation 瀏覽器應用程式的應用程式資訊清單。 不建議將 Visual Studio 建立的暫存憑證部署至生產環境。

    mage -update WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -update ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -update WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  5. 輸入下列命令以更新並簽署部署資訊清單檔,並取代上一個步驟中的預留位置名稱。

    mage -update DeploymentManifest -appmanifest ApplicationManifest -CertFile Certificate -Password Password
    

    例如,您可以執行下列命令來更新和簽署 Excel 增益集、Windows Forms 應用程式或 Windows Presentation Foundation 瀏覽器應用程式的部署資訊清單。

    mage -update WindowsFormsApplication1.application -appmanifest WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx
    mage -update ExcelAddin1.vsto -appmanifest ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx
    mage -update WpfBrowserApplication1.xbap -appmanifest WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
    
  6. .deploy 副檔名新增回檔案 (應用程式和部署資訊清單檔除外)。

  7. 或者,將主要部署資訊清單 (publish\<appname>.application) 複製到您的版本部署目錄 (publish\Application Files\<appname>_<version>)。