簡體   English   中英

從安裝項目重新啟動系統

[英]Reboot system from Setup project

我正在使用Visual Studio創建一個安裝項目。 我想在安裝成功完成后重啟系統。

我想要一次性的努力。 我不希望每次使用任何外部工具/實用程序修改設置,然后再將其提供給客戶端。

我可以調整安裝項目本身嗎?

我怎樣才能做到這一點?

您可以使用ORCA執行此操作。

有關詳細信息,請參閱此Microsoft HOW TO文章:

http://support.microsoft.com/kb/827020

試試這個:

在單獨的解決方案中創建一個空的合並模塊項目並構建它。 這將在項目的Debug或Release文件夾中創建一個msm文件。

編輯Orca中產生的MSM -設置重啟=強制屬性如圖所示這里 你只需要這樣做一次。

在主解決方案中,將合並模塊添加到安裝項目並構建它。 由於合並模塊是單獨構建的,因此它將保留reboot屬性並將其合並到您的MSI中。

請不要讓我失望,但我不會回答您的具體問題,但這是一種在msi安裝后重啟PC的方法。

使用WiX ,VS內置設置更加靈活,VS有一個插件。

如果您使用WiX,則這是啟動重新啟動的代碼。

<InstallExecuteSequence>
  <ScheduleReboot After='InstallFinalize' />
</InstallExecuteSequence>

或者,您可以為VS安裝項目創建一個轉換,該轉換僅包含用於啟動重新啟動的其他條目,然后您構建項目的任何時候都需要執行轉換,您可以將其發送給批處理文件或類似的客戶。

ps請記住,發出shell命令作為自定義操作並不是最好的方法。 這將導致計算機重新啟動並且不返回正確的退出代碼3010,因此如果有人試圖捕獲退出代碼或在命令行上執行/ norestart,則shell命令將忽略此操作。

編輯一旦你創建了一個msi文件,用orca打開它,然后在表格中添加必要的更改到schedulereboot。 將更改保存為轉換,然后只要msi文件沒有顯着變化,您就可以在每次運行時將轉換應用到msi。

Personaly我不想這樣做,因為它是一個額外的步驟,你應該能夠在源頭做到這一點。

要在orca中添加重新啟動序列,請轉到InstallExecuteSequence表並找到InstallFinalize條目。 添加一個名為ScheduleReboot的新條目,並在序列列中輸入一個比InstallFinalize階段的序列大1的數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM