问题标签 [stdole]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
67651 浏览

c# - stdole.dll 有什么作用?

我们有一个大型 C# (.net 2.0) 应用程序,它使用我们自己的 C++ COM 组件和一个也通过 COM 访问的第 3 方指纹扫描仪库。我们遇到了一个问题,在生产中,指纹库中的一些事件不会被触发到 C# 应用程序中,尽管来自我们自己的 C++ COM 组件的事件被触发并被很好地接收。

使用 MSINFO32 将工作系统上加载的模块与故障系统上的模块进行比较,我们确定这是由 STDOLE.DLL 不在 GAC 中引起的,因此未加载到故障进程中。

将此文件拖入 GAC 会导致事件从指纹 COM 库中正常返回。

那么 stdole.dll 是做什么的呢?它的大小为 16k,所以它不会太多......它是某种链接到另一个库(如 STDOLE32)吗?为什么它的缺席会导致这种奇怪的行为?

我们如何分发 stdole.dll?这是一个 XCOPY 部署应用程序,我们不使用 GAC。我们是否应该将其打包为资源并使用 System.EnterpriseServices.Internal.Publish.GacInstall 来确保它在 GAC 中?

0 投票
10 回答
134498 浏览

.net - 错误消息“无法安装或运行应用程序。应用程序需要 GAC 中的 stdole 版本 7.0.3300.0”

当一个用户尝试运行应用程序时,我们的 ClickOnce 应用程序会报告:

无法安装或运行应用程序。该应用程序需要 GAC 中的 stdole 版本 7.0.3300.0。

有趣的是,GAC (C:\Windows\assembly) 中没有安装 stdole。我怎么把它弄到那里?

我们使用的是 .NET 3.5,它已安装在这台计算机上。

0 投票
1 回答
680 浏览

.net - 错误消息:需要系统更新

在 VS2008 [windows 窗体应用程序] 中有一个应用程序。

我使用 VS2008 中的发布功能发布它。

[项目=>项目属性=>发布=>立即发布]。

当我在自己的 PC 上安装发布项目时,它运行良好……但在某些客户端 PC 上,它给了我以下错误消息。并且不要让我在那台 PC 上安装应用程序...安装过程立即停止。

在此处输入图像描述

我发布的应用程序出了什么问题?

0 投票
2 回答
7967 浏览

c# - 无法静默嵌入互操作警告

首先,我需要使用第三方 ActiveX 控件。

接下来,我必须使用 stdole 库来为第三方控件提供一些图像。当我在默认设置下编译时,我收到了一些警告:

很简单,我将遵循该建议并将 Embed Interop Types 设置为 false 以获取 stdole 参考。一切看起来都很好,直到我现在去客户端机器,突然应用程序抛出这个:

所以,我想这不会发生(尽管我不确定为什么删除 stdole 上的嵌入互操作会导致库完全无法找到)。

好吧,让我们换一种方式,用 Embed Interop 将所有内容标记为 true。哎呀!编译错误:

那么,关于如何摆脱警告并拥有可以构建和运行的东西的任何建议?

更新

Hans Passant 作为评论发布了一个确实解决问题的答案。如果他将其转发为答案,我会接受。不幸的是,我也遇到了标准问题,即设置为 Copy Local 的 DLL 被很好地复制到其项目的发布文件夹中,但不会移动到解决方案的最终发布文件夹(单独的可执行文件)。我现在通过在我的可执行文件中添加对 stdole 的引用解决了这个问题。我想这可能已经足够好了。

0 投票
0 回答
647 浏览

vb.net - 如何确保安装了 stdole.dll

我有一个使用CodeJock CommandBars提供功能区控件界面的项目(它是一个 ActiveX 控件)

这个组件需要stdole.dll,但我刚刚安装在没有办公室的机器上,这个dll不在GAC中。许可限制禁止您重新分发此 dll,那么我该从哪里开始呢?

我找到了主互操作程序集的重新分发,但是当我尝试安装它时,它说需要办公室。

任何帮助表示赞赏。

0 投票
0 回答
230 浏览

c# - 无法在 Visual Studio 2015 (stdole.dll) 中安装使用 ClickOnce 部署的应用程序

应用程序在 .net 4.5 中运行,在 VS 2012 中使用 ClickOnce 构建和部署。在构建和部署相同的应用程序时,不更改 VS 2015 中的任何设置,我无法在客户端安装它?

出现以下错误:

“强名称签名对此程序集 stdole.dll 无效”

当我从部署中排除 stdole.dll 时,安装就可以了。

我的问题是:如何在包含 stdole.dll 的 VS2015 中部署应用程序?

0 投票
4 回答
15910 浏览

c# - 无法加载文件或程序集 stdole

刚刚将VS2015与VS2010并排安装...

有问题的应用程序是使用 VS2010 构建的(设置为使用 .Net 4.0)(未迁移到 VS2015)在我的机器上运行良好,将它放在服务器上并倒在一堆...... stdole 是问题......

在错误 Windows 日志 > 应用程序中有一个异常:

查看对 stdole 的引用,它是对 GAC 和版本:2.0.0.0

什么都没有改变。

这个错误到底是从哪里来的?

0 投票
2 回答
9808 浏览

c# - 强名称签名对此程序集 stdole.dll 无效

我刚刚开始在我的ClickOnce应用程序中收到以下错误。安装和运行相同的应用程序时,看似成功安装后,我收到一条错误消息:

应用程序验证未成功

错误详细信息我可以看到问题是:

强名称签名对此程序集 stdole.dll 无效。

当我点击详细信息时,我得到

错误详细信息 在此操作期间检测到以下错误。* [04/13/2016 11:33:22 AM] System.Deployment.Application.InvalidDeploymentException (SignatureValidation) - 强名称签名对此程序集 stdole.dll 无效。- 来源:System.Deployment - 堆栈跟踪:在 System.Deployment.Application.ComponentVerifier.VerifyStrongNameAssembly(String filePath, AssemblyManifest assemblyManifest) 在 System.Deployment.Application.ComponentVerifier.VerifyComponents() 在 System.Deployment.Application.DownloadManager.DownloadDependencies( System.Deployment 中的 SubscriptionState subState、AssemblyManifest deployManifest、AssemblyManifest appManifest、Uri sourceUriBase、String targetDirectory、String group、IDownloadNotification 通知、DownloadOptions 选项。

0 投票
1 回答
231 浏览

.net - GAC 中的 stdole.dll 与 Microsoft 的 Nuget 包有什么区别?

我从事的 C# 项目有一个程序集,stdole.dll其中包含我的开发 PC 上位于C:\WINDOWS\assembly\GAC\stdole\7.0.3300.0__b03f5f7f11d50a3a\stdole.dll.

我不确定这个程序集最初是从哪里来的。我注意到有一个提供它的 Nuget 包:https ://www.nuget.org/packages/stdole/17.0.0-previews-1-31314-256虽然我们没有使用它。

我的程序集一直在使用预先存在的 GAC 文件;当我从 GAC stdole 引用切换到 Nuget 版本时,从我的 CSPROJ 中删除了以下内容:

而这增加了:

GAC 文件有版本7.0.9466.1,Nuget 包有17.0.31314.256.

我认为最好使用 Nuget 源并确保我们分发它的依赖项,而不是仅仅引用一些恰好在我的系统上的 DLL。但我真的不明白它们之间有什么区别(如果有的话)。


stdole 包提供的链接都没有用。他们是:

  • 从 VS 中的 Nuget:https ://aka.ms/vsextensibility (它重定向到一个明显不相关的“Visual Studio SDK”页面,似乎没有提到 stdole)

  • 从 Nuget网站发布说明链接转到“Visual Studio 2015 Update 2 Release Notes”,也似乎无关紧要

所以这些似乎是死胡同。


杂项/背景信息

该应用程序确实需要stdole,因为它与一些旧版 VB6 代码交互,并且StdPicture必须交换对象。

出现这个问题是因为我的应用程序在一台 PC 上特别出现以下错误:

此错误未在其他任何地方发生。正因为如此,我担心我们遗漏了应该安装的依赖项,也许幸运的是大多数 PC 上都存在一些依赖项,但不是全部。