簡體   English   中英

錯誤消息“無法安裝或運行該應用程序。該應用程序需要在GAC中使用stole Version 7.0.3300.0“

[英]Error message “Unable to install or run the application. The application requires stdole Version 7.0.3300.0 in the GAC”

當一個用戶嘗試運行該應用程序時,我們的ClickOnce應用程序正在報告:

無法安裝或運行該應用程序。 該應用程序需要在GAC中使用stole Version 7.0.3300.0。

有趣的是, GAC (C:\\ Windows \\ assembly)中沒有安裝stole。 我怎么去那里?

我們使用的是.NET 3.5,它已經安裝在這台計算機上。

嘗試轉到項目屬性中的“ 發布”選項卡,然后選擇“ 應用程序文件”按鈕。 然后設置以下屬性:

  • 文件名 stdole.dll
  • 將狀態發布Include
  • 將組下載必需

之后,您需要重新發布您的應用程序。

如果引用具有CopyLocal = true,則將使用該應用程序發布引用。 如果引用具有CopyLocal = false,則引用將被標記為先決條件。 這意味着在安裝ClickOnce應用程序之前,必須將程序集安裝在客戶端的GAC中。

由於Visual Studio安裝而不是.NET Framework安裝,因此在GAC中安裝了一些程序集。 這可能是你的情況。

事實證明,.NET文件被復制到C:\\Program Files\\Microsoft.NET\\Primary Interop Assemblies\\ 但是,他們從未在GAC注冊。

我最終手動將C:\\Program Files\\Microsoft.NET\\Primary Interop Assemblies的文件拖到C:\\windows\\assembly並且該應用程序在該問題機器上工作。 您也可以使用Gacutil以編程方式執行此操作

所以在安裝過程中似乎發生了一些事情,但這似乎糾正了這個問題。 我希望能幫助別人出去!

我的情況,我解決了這個問題,轉到項目屬性中Publish選項卡,然后選擇Application Files按鈕。 然后就是:

注意: 在應用此解決方案之前,請確保您已經(如我所做)檢查了所有解決方案的項目,並且未找到對stdole.dll程序集的引用。

1 - 位於stdole.dll的文件;

2 - 將其“ 發布”狀態更改為“ 排除”

3 - 之后您需要重新發布您的申請

從Visual Studio 2010遷移后,此問題發生在Visual Studio 2012上。

希望能幫助到你。

我在ClickOnce部署時遇到了同樣的問題。

我通過轉到項目屬性中的“發布”選項卡,然后選擇“應用程序文件”按鈕來解決問題。

然后我選擇了以下選項:

  • 'stdole.dll'的'文件名'
  • '發布狀態'為'包含'和
  • '下載組'為'必需'。

當我重新發布時,這解決了我的問題。

我希望這可以幫到你:D

我們的ClickOnce應用程序使用Interop和Microsoft Office時遇到了同樣的問題。 它只發生在公司的幾台電腦上。

我們發現的最佳解決方案是修改有問題的計算機上的MS Office安裝(通過“ 程序和功能”面板)並確保“.NET可編程性功能”(不確定組件的名稱 - 我們的Microsoft_Office版本不是英語)是為每個MS Office應用程序(Excel,Word,Outlook等)安裝。 這似乎不包含在默認安裝中。

然后修復了stdole.dll的問題。

我希望這可能有所幫助。

我的解決方案:我在解決方案資源管理器(顯示所有文件)中打開了參考文件夾,並且對於安裝所抱怨的每個程序集(程序集的名稱可能與程序集的文件名不完全相同 - 在對象資源管理器中,但是很容易搞清楚),我將Copy Local更改為True 我最終需要對每個Microsoft Office / COM相關程序集執行此操作。

好吧,您無法使用ClickOnce安裝到GAC。 這篇MSDN文章中記錄了這一點

有趣的是,我的項目中沒有任何關於stdole的引用,但我還是有一個用戶仍然收到錯誤。 我必須添加引用,然后將設置更改為include。 希望這會奏效。

對於H2oRider - 您的應用程序是否訪問GAC中的Oracle dll? 我建議您這樣做:將dll添加到項目中並將構建操作設置為“content”並將“copy to output directory”設置為“always always”。

然后將您的引用刪除到GAC中的dll。 重新添加引用,但這次深入查看剛剛添加到項目中的引用。

現在發布它。 應用程序將在本地查找dll,並且dll包含在部署中,以便它可以找到它。

如果這不起作用,那么如果包含在本地而不是GAC中,則可能無法使用該DLL。 某些程序集也是如此,例如Office PIA。 在這種情況下,部署它的唯一方法是將其包裝在設置和部署包中,並使用Bootstrapper Manifest Generator將其轉換為可以使用ClickOnce部署發布的先決條件。

檢查您是否真的使用EnvDTE參考。 如果沒有,請將其刪除並重新編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM