2015-03-30 25 views
-1

我創建了一個帶有代理組件的測試應用程序,它在我的計算機上運行流暢,但是當它移動到平板電腦並執行所有必需設置(regsvr32,icacls)時,它會引發異常。然後我去了並下載了Microsoft Northwind示例,它的行爲相同。在我的機器上工作正常,但在另一臺平板電腦上工作正常我在這裏錯過任何東西嗎?這是異常,它是轉換異常和拒絕訪問異常: 無法將類型爲'NorthwindRT.DAL.FileWatcher'的COM對象轉換爲接口類型爲'NorthwindRT.DAL.IFileWatcherClass'的類型。此操作失敗,因爲IID爲「{23F40340-AEB1-5774-5705-64488C9BDD3A}」的接口的COM組件上的QueryInterface調用由於以下錯誤而失敗:訪問被拒絕。 (來自HRESULT的異常:0x80070005(E_ACCESSDENIED))。 但我在平板電腦上做了與在開發機器上做的相同的事情! 我將所需的文件移動到了正確的目錄並啓用了對所有應用程序的讀取/執行,並使用regsvr32註冊了代理。此外,用戶可以訪問實現dll所在的目錄,以便訪問被拒絕異常很奇怪。 我做了我的研究關於經紀公司,我正在做的就像可用的文件! 任何想法?我在這裏錯過了什麼嗎?我需要做額外的設置嗎?我的系統是否缺少任何必需的dll?Brokered Component部署到客戶端時不起作用

+0

最後你能解決這個問題嗎? – 2015-05-04 16:19:01

回答

0

該應用沒有訪問msvcr120d.dll 添加「所有應用程序包」到這個DLL,它會解決這個問題。

0

我也在研發代理組件,到目前爲止我在開發和部署方面都取得了一些成功。

訪問被拒絕。 (來自HRESULT的異常:0x80070005(E_ACCESSDENIED))

您需要在具有proxystub.dll和winmd實現的文件夾中運行icacls。

icacls . /T /grant "ALL APPLICATION PACKAGES":RX

現在,如果你要部署到沒有一個開發環境(即視覺工作室)的設備,你需要安裝的Visual C++可再發行的Visual Studio 2015年(你可以使用任何VS版本,有,它只是發生,我使用VS2015)。你可以下載它here。還有一件事,由於您沒有設備中的開發環境,因此您想部署版本程序集而不是調試,以便程序集不會引用用於調試的庫或dll(即msvcr120 .dll而不是msvcr120 d .dll),因爲它不會在乾淨的設備中找到。最後,我有一個blog關於中介組件。你可能想看看它。