2010-10-13 111 views
1

我有2臺服務器。一個是生產和測試服務器。clickonce安裝問題

現在,我有一個坐在生產和測試服務器上的WPF應用程序。我怎樣才能從生產和測試服務器安裝在我的本地機器的WPF應用程序?我一直收到錯誤,安裝了相同的簽名。

謝謝

回答

3

您需要爲每個環境單獨的ClickOnce軟件包。每個軟件包都需要有不同的assemblyIdentity名稱。查看assemblyIdentity元素的部署清單(* .application)文件。該元素的name屬性對於每個環境都必須不同。它看起來是這樣的:

<assemblyIdentity 
    name="Product_TEST" 
    version="2.5.44.19347" 
    publicKeyToken="82e7b44bd73eeecd" 
    language="neutral" 
    processorArchitecture="msil" 
    xmlns="urn:schemas-microsoft-com:asm.v1" /> 

我們使用喜歡的名字:Product_TEST,Product_UAT,Product_PROD每個實例ClickOnce的區分。使用這種方法,我們可以在客戶端PC上並行安裝多個產品實例。

這意味着您需要爲每個環境創建一個單獨的ClickOnce包。每個部署清單都會有所不同,因此每個包都有不同的簽名簽名(如果您使用的是簽名包)。我們過去使用msbuild ClickOnce目標爲我們的所有環境構建單獨的包,但最近更改爲構建一個通用包,並具有一個定製構建工具,可根據需要執行ClickOnce重新打包。你也可以使用法師。

+0

我不知道如何更改名稱屬性。我在/ t中使用了msbuild:publish – 2014-01-07 21:42:07

+0

如果您使用/ t:Publish內置目標,則需要通過VisualStudio中的項目屬性編輯名稱。打開項目屬性,單擊發布選項卡,然後單擊選項。我直接在我的構建腳本中使用GenerateApplicationManifest和GenerateDeploymentManifest msbuild目標,因此我可以根據需要設置屬性。 – Glenn 2014-01-09 02:36:55

+0

也許這已經改變,但我不知道如何做到這一點。在我的所有測試中,我所能完成的所有工作都是從AssemblyName中獲取身份名稱集,但仍會產生錯誤的值。 – 2015-06-05 18:42:24