当一个用户尝试运行该应用程序时,我们的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的问题.
我希望这可能有所帮助.