问题标签 [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.
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 中?
.net - 错误消息“无法安装或运行应用程序。应用程序需要 GAC 中的 stdole 版本 7.0.3300.0”
当一个用户尝试运行应用程序时,我们的 ClickOnce 应用程序会报告:
无法安装或运行应用程序。该应用程序需要 GAC 中的 stdole 版本 7.0.3300.0。
有趣的是,GAC (C:\Windows\assembly) 中没有安装 stdole。我怎么把它弄到那里?
我们使用的是 .NET 3.5,它已安装在这台计算机上。
.net - 错误消息:需要系统更新
我在 VS2008 [windows 窗体应用程序] 中有一个应用程序。
我使用 VS2008 中的发布功能发布它。
[项目=>项目属性=>发布=>立即发布]。
当我在自己的 PC 上安装发布项目时,它运行良好……但在某些客户端 PC 上,它给了我以下错误消息。并且不要让我在那台 PC 上安装应用程序...安装过程立即停止。
我发布的应用程序出了什么问题?
c# - 无法静默嵌入互操作警告
首先,我需要使用第三方 ActiveX 控件。
接下来,我必须使用 stdole 库来为第三方控件提供一些图像。当我在默认设置下编译时,我收到了一些警告:
很简单,我将遵循该建议并将 Embed Interop Types 设置为 false 以获取 stdole 参考。一切看起来都很好,直到我现在去客户端机器,突然应用程序抛出这个:
所以,我想这不会发生(尽管我不确定为什么删除 stdole 上的嵌入互操作会导致库完全无法找到)。
好吧,让我们换一种方式,用 Embed Interop 将所有内容标记为 true。哎呀!编译错误:
那么,关于如何摆脱警告并拥有可以构建和运行的东西的任何建议?
更新
Hans Passant 作为评论发布了一个确实解决问题的答案。如果他将其转发为答案,我会接受。不幸的是,我也遇到了标准问题,即设置为 Copy Local 的 DLL 被很好地复制到其项目的发布文件夹中,但不会移动到解决方案的最终发布文件夹(单独的可执行文件)。我现在通过在我的可执行文件中添加对 stdole 的引用解决了这个问题。我想这可能已经足够好了。
vb.net - 如何确保安装了 stdole.dll
我有一个使用CodeJock CommandBars提供功能区控件界面的项目(它是一个 ActiveX 控件)
这个组件需要stdole.dll,但我刚刚安装在没有办公室的机器上,这个dll不在GAC中。许可限制禁止您重新分发此 dll,那么我该从哪里开始呢?
我找到了主互操作程序集的重新分发,但是当我尝试安装它时,它说需要办公室。
任何帮助表示赞赏。
c# - 无法在 Visual Studio 2015 (stdole.dll) 中安装使用 ClickOnce 部署的应用程序
应用程序在 .net 4.5 中运行,在 VS 2012 中使用 ClickOnce 构建和部署。在构建和部署相同的应用程序时,不更改 VS 2015 中的任何设置,我无法在客户端安装它?
出现以下错误:
“强名称签名对此程序集 stdole.dll 无效”
当我从部署中排除 stdole.dll 时,安装就可以了。
我的问题是:如何在包含 stdole.dll 的 VS2015 中部署应用程序?
c# - 无法加载文件或程序集 stdole
刚刚将VS2015与VS2010并排安装...
有问题的应用程序是使用 VS2010 构建的(设置为使用 .Net 4.0)(未迁移到 VS2015)在我的机器上运行良好,将它放在服务器上并倒在一堆...... stdole 是问题......
在错误 Windows 日志 > 应用程序中有一个异常:
查看对 stdole 的引用,它是对 GAC 和版本:2.0.0.0
什么都没有改变。
这个错误到底是从哪里来的?
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 选项。
.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 上都存在一些依赖项,但不是全部。