2014-04-04 31 views
5

我在.NET 4.0中創建了一個項目,並在本地共享文件夾中單擊一次進行測試。一旦測試通過,我們使用mage.exe來退出清單並更改發佈網址的製作最終url http://www.ourcompany.net/ ....將Click-once應用程序更改的清單從4.0更改爲4.5

如果我們使用.NET 4.0,一切都可以正常工作。

如果我們使用.NET 4.5及以上版本,當我們嘗試從最終的url啓動應用程序時,它將無法安裝,下面的錯誤。

我的問題是:

我應該如何使用mage.exe與.NET 4.5更改應用程序的發佈網址(並用新鑰匙辭職),這裏的一切工作正常取之於4.0改變了嗎?

平臺版本信息 的Windows:6.2.9200.0(Win32NT) 公共語言運行庫 :4.0.30319.34011 System.Deployment.dll :4.0.30319.33440通過內置:FX45W81RTMREL clr.dll:4.0.30319.34011通過建:FX45W81RTMGDR dfdll.dll:4.0.30319.33440通過內置:FX45W81RTMREL dfshim.dll:6.3.9600.16384(winblue_rtm.130821-1623)

來源 部署URL :http://www.xxxxxx.net/test/uploadtest/uploadtest.application 服務器:Microsoft-IIS/6.0 X供電,通過:ASP.NET 應用程序URL :http://www.xxxxxx.net/test/uploadtest/Application%20Files/UploadTest_1_0_0_6/UploadTest.exe.manifest 服務器:Microsoft-IIS/6.0 X供電,通過:ASP.NET

恆等式 部署身份 :UploadTest.application,版本= 1.0.0.6,Culture = neutral,PublicKeyToken = 835b72d8d08b5689,processorArchitecture = msil

應用摘要 *可安裝的應用程序。

錯誤摘要 下面是錯誤摘要,這些錯誤的詳細信息將在日誌後面列出。 *激活http://www.xxxxxx.net/test/uploadtest/uploadtest.application導致異常。檢測到以下故障消息: +應用程序清單具有與指定的散列不同的計算散列,或根本不指定散列。 +文件UploadTest.exe.manifest具有不同於清單中指定的計算散列值。

COMPONENT STORE TRANSACTION FAILURE SUMMARY 未檢測到事務錯誤。

警告 在此操作過程中沒有警告。

操作進度狀態 * [04/04/2014 11:12:05]:激活http://www.xxxxxx.net/test/uploadtest/uploadtest.application已經開始。 * [04/04/2014 11:12:06]:處理部署清單已成功完成。 * [04/04/2014 11:12:06]:安裝應用程序已經開始。

錯誤詳細信息 在此操作過程中檢測到以下錯誤。 * [04/04/2014 11:12:06] System.Deployment.Application。InvalidDeploymentException(HashValidation) - 應用清單具有任一不同的計算出的散列比所指定的一個或沒有在所有指定的哈希。 - 資料來源:System.Deployment - 堆棧跟蹤: 在System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest,字符串TARGETDIR,烏里deploymentUri,IDownloadNotification通知,DownloadOptions選項,烏里& appSourceUri,字符串& appManifestPath) 在系統.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest,字符串TARGETDIR,烏里deploymentUri,烏里& appSourceUri,字符串& appManifestPath) 在System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState子狀態中,ActivationDescription actDesc,Int64類型的transactionId,TempDirectory & downloadTemp ) 在System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState &子狀態中,ActivationDescription actDesc) 在System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(URI activationUri,布爾isShortcut,字符串textualSubId,字符串deploymentProviderUrlFromExtension,BrowserSettings browserSettings,字符串& errorPageUrl) at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state) ---內部異常--- System.Deployment.Application.InvalidDeploymentException(HashValidation) - 文件UploadTest.exe.manifest具有不同的計算散列超出清單中的規定。 - 資料來源:System.Deployment - 堆棧跟蹤: 在System.Deployment.Application.ComponentVerifier.VerifyFileHash(字符串文件路徑,哈希散列) 在System.Deployment.Application.ComponentVerifier.VerifyFileHash(字符串文件路徑,HashCollection hashCollection) 在System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest,字符串TARGETDIR,烏里deploymentUri,IDownloadNotification通知,DownloadOptions選項,烏里& appSourceUri,字符串& appManifestPath)

組件存儲事務詳細 沒有交易資料。

回答

3

我終於解決了,問題真可謂是用錯了SHA與mage.exe工具。

當我辭職,我與mage.exe應用,如果應用程序是在.NET 4.5或以上,我需要指定要使用SHA256RSA與mage.exe命令選項

-a sha256RSA

線和一切正常。

+1

對於那些使用mageui.exe工具,這可以在文件中完成 - >首選項 - >摘要算法。 –