2010-03-12 69 views
1

所以我有一個winform解決方案,通過clickonce部署。 Eveything正常工作,直到我添加了一個WCF項目。 (請參閱在文章結尾解析清單文件時的錯誤) 現在我注意到MSBuild將服務編譯爲_PublishedWebsites目錄。 我不知道這是什麼需要,但我懷疑這是問題的原因。這個wcf項目引用瞭解決方案中的其他項目。 我實際上是在應用程序內託管wcf服務,所以我並不真的需要MSBuild來爲我完成所有這些工作。 有什麼建議嗎?添加WCF服務項目後Clickonce安裝失敗

============================================== ======================================= PLATFORM VERSION INFO Windows:5.1.2600.131072( Win32NT) 公共語言運行庫:2.0.50727.3603 System.Deployment.dll:2.0.50727.3053(netfxsp.050727-3000) 的Mscorwks.dll:2.0.50727.3603(GDR.050727-3600) dfdll.dll:2.0.50727.3053 (netfxsp.050727-3000) dfshim.dll:2.0.50727.3053(netfxsp.050727-3000)

SOURCES 部署URL:文件:/// C:/applications/abc/dev/abc.Application.application

恆等式 部署身份:流量管理System.app,版本= 1.4.0.0,文化=中性公鑰= 8453086392175e0f,ProcessorArchitecture用於= MSIL

應用概要 *安裝的應用程序。 *設置了信任URL參數。 錯誤摘要 下面是錯誤摘要,這些錯誤的詳細信息將在日誌後面列出。 *激活C:\ applications \ abc \ dev \ abc.Application.application導致異常。檢測到以下故障消息: +文件異常讀取清單:/// C:/applications/abc/dev/1.4.0.0/abc.Application.exe.manifest:清單可能無效或文件無法打開。 +清單的解析和DOM創建導致錯誤。下面解析錯誤被發現: -HRESULT:0x80070c81 開始行:0 啓動欄:0 主機文件:
+從HRESULT異常:0x80070C81

組件存儲事務失敗摘要 檢測到任何事務錯誤。

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

操作進度狀態 * [12/03/2010 6:33:53 PM]:激活C:\ applications \ abc \ dev \ abc.Application.application已經啓動。 * [12/03/2010 6:33:53 PM]:處理部署清單已成功完成。 * [12/03/2010 6:33:53 PM]:安裝應用程序已經開始。

錯誤詳細信息 在此操作過程中檢測到以下錯誤。 * [12/03/2010 6:33:53 PM] System.Deployment.Application.InvalidDeploymentException(ManifestParse) - 異常讀取文件清單:/// C:/applications/abc/dev/1.4.0.0/abc .Application.exe.manifest:清單可能無效或文件無法打開。 - 源:System.Deployment - Stack trace: at System。Deployment.Application.ManifestReader.FromDocument(字符串了localPath,ManifestType manifestType,烏里sourceUri) 在System.Deployment.Application.DownloadManager.DownloadManifest(URI & sourceUri,字符串TARGETPATH,IDownloadNotification通知,DownloadOptions選項,ManifestType manifestType,ServerInformation & serverInformation) 在System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest,字符串TARGETDIR,烏里deploymentUri,IDownloadNotification通知,DownloadOptions選項,烏里& 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) 在System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(對象狀態) ---內部異常--- System.Deployment.Application.InvalidDeploymentException(ManifestParse) - 解析和DOM創建清單中導致錯誤。下面解析錯誤被發現: -HRESULT:0x80070c81 開始行:0 啓動欄:0 主機文件:
- 資料來源:System.Deployment - 堆棧跟蹤: 在System.Deployment.Application.Manifest.AssemblyManifest。 LoadCMSFromStream(Stream stream) at System.Deployment.Application.Manifest.AssemblyManifest..ctor(FileStream fileStream) at System.Deployment.Application.ManifestReader.FromDocument(String localPath,ManifestType manifestType,Uri sourceUri) --- Inner Exception --- System.Runtime.InteropServices.COMException - 來自HRESULT的異常:0x80070C81 - 來源:System.Deployment - 堆棧跟蹤: 在System.Deployment.Internal.Isolation.IsolationInterop.CreateCMSFromXml在System.Deployment.Application.Manifest.AssemblyManifest(字節[]緩衝液,UInt32的緩衝區大小,IManifestParseErrorCallback回叫,的Guid & RIID) .LoadCMSFromStream(流數據流)

組件存儲交易詳情 沒有交易信息可用。

回答

1

我有點糊塗了,你是什麼意思: 「我其實託管應用程序中的WCF服務,所以我並不真正需要的MSBuild做這一切對我來說

WCF服務應該是一個單獨的(僅限服務器端)解決方案,只包含屬於服務器端的所有位。 clickonce應用程序應該是客戶端唯一的解決方案,通過創建Web引用,爲服務提供URL等引用WCF服務。

可以讓WCF服務(服務器端)與winforms應用程序具有相同的.sln,只要確保不要將項目引用添加到WCF服務中,通信僅使用Web引用完成。就我個人而言,我認爲將客戶端和服務器端項目完全分開是非常簡單的(儘管在某些情況下,在兩種解決方案中共享某些項目確實有意義,例如,如果您有一個持久層無知的biz層,那麼它可以共享)。