我有一個配置文件,需要在每個服務器的基礎上進行更改,以便一旦服務器安裝了我們的軟件,客戶端安裝程序的配置文件就會設置爲與該服務器的特定設置,然後複製到Web上的公用文件夾進行部署。Mage.exe部署問題
由於我正在更改配置文件,我還必須重新生成* .manifest和* .application文件,而據我所知,我唯一真正的選擇是使用Win7 SDK中的Mage.exe 。爲了修復* .manifest文件與修改的配置文件中的正確散列,我運行:
mage -new應用程序-fd「。\ Application Files \ < appName> _1_0_0_0」-ToFile「。\ Application Files \ _1_0_0_0 \ < APPNAME> .exe.manifest」 -Name 「< APPNAME>」 -Version 「1.0.0.0」 -CertFile 「key.pfx」 -password 「<密碼>」
,然後,以固定* .application文件與來自修改的* .manifest文件的正確散列,我運行:
mage -new部署-I t -t「< appName> .application」-v「1.0.0.0」-appManifest「應用程序文件\ < appName> _1_0_0_0 \ < appName> .exe.manifest「-pu」http:// < hostaddress>/< path>/Application Files/< appName> _1_0_0_0/< appName> .exe.manifest「-CertFile」key.pfx 「-password」「
現在,這一切正常,我收到消息,文件已成功簽署。當我嘗試雖然安裝客戶端應用程序,這是顯而易見的事情出了錯時,我得到一個錯誤日誌與消息:
+ Deployment manifest is not semantically valid.
+ Deployment manifest requires <deployment> section.
在看*。應用文件,它根據一些附加信息「部署」節點,從VS2008的發佈功能,直接在同一文件沒有:
<deployment install="true">
<subscription>
<update>
<expiration maximumAge="0" unit="days" />
</update>
</subscription>
<deploymentProvider codebase="http://<hostaddress>/<path>/Application Files/<appName>_1_0_0_0/<appName>.exe.manifest" />
</deployment>
的VS2008發佈的版本只是有:
<deployment install="true" />
當我刪除了附加信息並將部署節點設置爲自行終止節點,然後重新簽名該文件,一切都按預期工作。
這是一個已知問題,並且有沒有任何方法讓Mage在部署節點中沒有額外信息的情況下創建文件,以便它能正常工作?
編輯:作爲一種臨時解決方案,我將文件加載到一個XmlDocument並修改它們以適應,然後重新簽名這些文件。另外,我現在面臨的問題是仍然無法確定如何將圖標添加到展開,因此「開始」菜單項獲取的圖標不是通用圖標。
我有一個非常類似的用例類似的問題。如果我找到解決方案,我會回覆。 – 2010-02-23 03:49:11
只需使用標準 – 2013-12-20 11:01:29
Nathan的-appc標誌,查看我的答案,看看它是否對您有所幫助。使用Mage.exe應該適合你。 – 2014-08-28 17:01:58