错误消息“无法安装或运行该应用程序。该应用程序需要在GAC中使用stole Version 7.0.3300.0”

当一个用户尝试运行该应用程序时,我们的ClickOnce应用程序正在报告:   无法安装或运行该应用程序。该应用程序需要在GAC中使用stole Version 7.0.3300.0。 有趣的是,GAC(C:\ Windows \ assembly)中没有安装stdole。我怎么去那里? 我们使用的是.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的问题。 我希望这可能有所帮助。     
好吧,您无法使用ClickOnce安装到GAC。这篇MSDN文章中有记录。     
我的解决方案:我在解决方案资源管理器中打开了参考文件夹(显示所有文件),并且对于安装所抱怨的每个程序集(程序集的名称可能与程序集的文件名不完全相同 - 在对象资源管理器中,但是很容易搞清楚),我将Copy Local更改为True。我最终需要对每个Microsoft Office / COM相关程序集执行此操作。     
检查您是否真的使用EnvDTE参考。如果没有,请将其删除并重新编译。     
有趣的是,我的项目中没有任何对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部署发布的先决条件。     

要回复问题请先登录注册