问题标签 [side-by-side]
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.
com - 在依赖的 DLL 中指定独立的 COM 设置还是只指定可执行文件?
我在 C++ VS2005 项目中设置独立 COM 项目设置,以使用免注册激活方法加载 ocx 组件。如果 ocx 组件也用于我的应用程序加载的 DLL 库中,我是否还需要在该 DLL 项目的设置中设置独立 COM 设置?还是只设置主应用程序的嵌入式清单就足够了?谢谢!
c# - IE 和 activeX 应用程序的清单问题
我面临以下配置: IE 加载 c++ activeX(加载 c# COM ActiveX (EXECUTOR) 的加载器应用程序,它使用反射启动 c# UI 应用程序(主应用程序),它使用一些旧的 c++ COM dll。
我试图避免注册这些遗留的 c++ COM(我想使用清单)。但没有成功。
如果有一种方法可以使用指向这些 dll 的“文件”部分为 ActiveX 指定清单?
我尝试为 IE 创建清单但没有成功,将 Native.manifest 放在遗留目录所在的目录中,也没有成功。
似乎 XBAP 而不是 loader 和 executor 应该可以解决这个问题。但是,任何想法如何解决当前架构中的问题?
谢谢
pool - 网站间歇性可用 - 应用程序池 1.1 和 2.0 问题
我的 .NET 1.1 网站出现问题,很难追踪。默认页面会显示,但是当用户输入凭据时,就好像什么都没发生一样,默认页面将再次重新加载,没有任何错误消息(尽管后面的代码是捕获错误以及我的 Global.asax正在捕获应用程序错误)。无论是否正确输入了用户凭据,这也会发生,并且为了使事情更加混乱,它会间歇性地发生。有时,用户能够登录,有时当他们输入凭据时,他们所看到的只是再次重新加载默认页面。
这个问题只发生在没有安装 Visual Studio 的机器上,所以我无法调试问题。它同时安装了 2.0 和 1.1 .NET,并且是一个登台服务器。此外,应用程序错误日志或我的内部日志中没有写入任何错误。SQL 跟踪显示,正在调用 SQL 服务器以验证用户凭据并正常工作,但随后将再次重新加载默认页面。
经过一番调查,我意识到这可能不是应用程序问题,因为它间歇性地工作并查看了 IIS 应用程序池设置。我的应用程序在默认应用程序池中运行,该应用程序池仅假设具有 1.1 应用程序。但是服务器也有一些 2.0 应用程序,它们应该在它们自己的 2.0 应用程序池中。我刚刚为我的应用程序创建了一个新的应用程序池,现在一切似乎都运行良好。
不知道为什么应用程序间歇性地工作,我想知道当我的 1.1 应用程序尝试使用时启动默认池(可能是 2.0)并因此默认池将与该版本的 .NET 相关联的应用程序默认池,它会呕吐,没有任何错误或异常。
有没有人也遇到过这个问题?非常奇怪的行为!
c++ - SidBySide:第 3 方 Dll 指的是 MSVCR80.DLL 的两个版本
我们包含了一个最近在安装中引起很多麻烦的第三方 lib+DLL。使用dependencywalker,我们发现dll本身引用了两个不同的版本
替代文字 http://img101.imageshack.us/img101/1734/dependencywalk2.jpg
在大多数情况下,安装没有问题,即使我们没有分发两个版本。但在许多情况下,我们的安装无法启动。然后,我们从 SideBySide 管理器的 Windows 系统事件日志中找到消息:“DLL 版本不匹配”。在大多数情况下,通过安装 .NET 框架(尽管我们不使用它),可以再次解决这个问题。但现在我们有一个案例,这没有帮助。
我知道解决方案是将两个版本安装为共享程序集,但这似乎并不容易,除此之外我更喜欢更简单的解决方案。有人知道解决方法吗?
我能以某种方式只使用一个版本的 Dll 吗?
编辑: 我现在尝试了克里斯蒂安的建议:
如果我使用完整路径查看 dll 依赖项,我会看到以下内容: alt text http://img340.imageshack.us/img340/4122/dependencywalk3.jpg
较低的 MSVCR80.DLL 是版本 ...42 的那个。我不明白这一点。为什么 MSVC P 80.DLL 引用的 MSVC R 80.DLL 版本与除此之外的版本不同。这可能是dependencywalker的问题吗?
c++ - 在另一台安装了 MSVC++ 2005 的计算机上出现 SideBySide 错误
我在另一台计算机上构建和运行项目时遇到了一些奇怪的问题。这是一个并排的错误。通常原因是机器上未安装 c++ 可再发行组件等。但是在这种情况下,项目是在该机器上编译的。安装了 MSVC++ 2005,运行时应该在那里(无论如何,我再次安装了运行时)。为什么链接器引用机器上不可用的运行时库?
我正在动态链接到运行时库。
关于如何调试此问题的任何想法?
谢谢。
编辑
我不想开始另一个帖子,因为它是相关的。由于这个 DLL 版本混乱,这是静态链接到运行时的好理由吗?我会避免所有这些问题吗?我看不到动态链接到运行时的任何优势。我的印象是,使用 DLL 运行时,您可以获得使用新 DLL 进行更新/错误修复的好处。但是,由于 SxS 和清单,它确保它无论如何都会加载 DLL 的特定版本(旧版本)?那么动态运行时到底有什么意义呢?可能节省了几 kb 的空间,因为您没有在所有依赖库中嵌入重用函数。但这与您的应用程序无法运行的成本相比,因为某些古老的运行时版本已从机器中删除,这不值得吗?
再次感谢。仍在追踪原始问题,并且可能必须重新编译我正在使用的每个库。
windows-xp - Windows SideBySide 是如何工作的?任何文档?
我最近问了一个有关SideBySide 问题的相关问题。我发现使用安装程序安装共享程序集是可行的,而使用私有程序集则不行。
我还发现了另一个相关的问题sxstrace.exe
。但这对于 Windows XP 似乎不存在。
- 有没有关于 SideBySide Manager 详细信息的资源?我知道 Microsofts Using Side-by-side Assemblies,但我该如何调试这些问题?
sxstrace.exe
Windows XP是否存在?我在哪里可以下载它?我使用了依赖walker,但它似乎做了一些与SideBySide 管理器不同的解释。
com - XBAP 使用非托管 c++ COM 服务器,并排部署问题
我面临以下情况:我创建了一个简单的完全信任 XBAP 应用程序,它引用了非托管 c++ COM 服务器(隔离)。
部署后,我希望 XBAP 应用程序会发现位于同一目录中的 COM 服务器 dll,但事实并非如此。我收到以下错误:
调用的目标已引发异常。---> System.Runtime.InteropServices.COMException (0x80040154):检索具有 CLSID {970599E0-2673-11D3-A8A8-00105AA943DF} 的组件的 COM 类工厂失败,原因是以下错误:80040154。在 Generation888.Generation888.Simple (Int32 num1,Int32 num2)
我验证了部署 XBAP 的文件夹包含包含正确 CLSID 的 DLL 和 XBAP 清单
如果我创建了一个简单的 C# Windows 窗体应用程序并引用相同的 COM dll,它就可以正常工作。
我的问题是 XBAP 是否支持 Side-by-Side 机制。
谢谢
.net - 如何将清单添加到 .NET DLL?
我有 ac# 类库项目,它使用在系统上注册的 COM dll。我现在想将 COM dll 部署为并行程序集,因此我不必注册它,也不必干扰可能使用不同版本 dll 的其他应用程序。
我已经使用添加新项目菜单将 app.manifest 添加到 c# 项目中,但我不确定下一步该做什么。在项目属性/应用程序/图标和清单中,清单下拉菜单被禁用。我不知道如何克服。我添加了一个清单文件,为什么它不在下拉列表中?
我有一个适用于 C++ 应用程序的 COM dll 清单,我想我保持原样。现在我需要知道如何为 c# 项目编辑 app.manifest。我将从添加一个已知良好的依赖元素开始。但是我需要一个关于如何设置它的教程,我看不到它在任何地方都被覆盖。
我正在使用 VS2008
c# - 与 C# 和 VBA 的并行 COM 互操作
我不是在谈论从 C# 调用 VBA COM ......相反!
我想做的是在 MS Access 中使用 VBA 调用 C# 库而不注册 DLL。我一直在玩并排互操作一段时间但没有成功,我终于意识到 mdb.manifest 可能不是 exe.manifest 的可接受替代品(可能很明显,我知道,但我试图保持乐观)。
我的问题:是否可以让 VBA 加载并排 COM 组件?
或者,是否有另一种方法可以在 Access 中使用未注册的 C# 库?
(在你问之前,我的理由是:我绝对不会被授予访问我客户的 Windows 注册表的权限——这就是为什么它首先是用 Access 编写的。而且,我需要在一个C# 应用程序很快,而不是做两次)。
qt - 运行 Qt Creator 时出现并排错误
在 Vista Ultimate(无 SP)上,我使用 Windows 二进制安装程序安装了诺基亚的 Qt Creator 1.3。当我尝试运行它时,我收到一个并排错误消息:“应用程序无法启动,因为它的并排配置不正确。请参阅应用程序事件日志以获取更多详细信息。”
事件查看器日志显示:“C:\Qt\qtcreator-1.3.0\bin\qtcreator.exe 的激活上下文生成失败。依赖程序集 Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b" ,type="win32",version="9.0.21022.8" 找不到,详细诊断请使用sxstrace.exe。
运行和 sxstrace 给了我一个日志文件。我已经在http://cl1p.net/sxstrace/上传了内容
我认为它与不同版本的 DLL 和 Sxstrace 系统以及 VC90.crt 有关,但我不知道该怎么做。如果有帮助,我在 PC 上安装的唯一其他开发工具是 Dev-C++(和 MingW)。我过去曾安装过 Visual Studio,但从那以后它就被卸载了。其他具有 VC90.crt 清单的应用程序,如 Limewire 和 Digsby 运行良好。请帮忙?