问题标签 [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.

0 投票
1 回答
4176 浏览

.net - 尝试从本机应用程序并排访问 .NET 程序集时出现 OLE 错误 80131522

我有一个需要访问 .NET 程序集的应用程序(Delphi Native 代码)(公开了一些 COM 类。我想使用并排程序集和清单来执行此操作。我已经使用测试 .NET 程序集完成了此操作,但是我我需要访问的程序集有问题。

注册程序集后,我可以实例化 COM 类。一旦我取消注册程序集并尝试并排访问,我就会收到上述错误。我的本机应用程序有一个应用程序清单,它对程序集有一个简单的依赖关系。

我作为资源嵌入到我的 .net 程序集中的程序集清单如下:

清单似乎设置正确。如果我更改应用程序清单的依赖项名称、版本或公钥令牌(示例中的那个不是我的代码中的那个),我会收到关于应用程序配置不正确的常见 SxS 错误。

我在另一个(诚然更简单的).NET 程序集上工作,但无法弄清楚出了什么问题。问题是我不确定错误是什么意思。

0 投票
1 回答
301 浏览

.net - 并行执行和 MS 单元测试

这里的环境是 C#/.Net 4。

在我的 MS 单元测试单元测试项目中,我正在测试一段代码,它使用 COM dll 进行一些日期转换计算(这又使用了一些其他 COM DLL,因此涉及所有三个 COM DLL)。

在正常的应用程序/服务设置中运行时,通过使用链接到 COM dll 程序集标识的清单,我可以毫无问题地让并行执行工作,但是当尝试从我的单元测试中执行相同操作时项目,我总是因为“类未注册”异常而失败。

现在,我已经尝试过了:

  • 嵌入测试 DLL 清单
  • 嵌入测试 DLL 清单、COM dll 清单 + COM DLL 本身

但无济于事。所以我想知道:如何让单元测试环境知道通过清单链接的 COM?对我来说,似乎 DLL 清单链接不太工作(EXE 清单工作正常),但通常这些想法等于做错事......

我通常在搜索这样的东西方面非常成功,但是在这个上,我的点击率很少,没有类似的东西,所以请,如果你有任何想法或意见,请分享:)需要,请告诉我。

(我知道,COM dll 的使用可能可以通过在正确的位置进行一些依赖注入来避免,但现在我想探讨一下有关单元测试并行设置的案例)。

亲切的问候

杰斯珀

0 投票
2 回答
5142 浏览

c++ - Error: "Application has failed to start because its side-by-side configuration is incorrect"

I have created an MFC application using Visual Studio 2008 which is working fine on Windows XP. But when I try to execute the same EXE file in Windows Vista I am getting:

Error: Application has failed to start because its side-by-side configuration is incorrect

When I check the event viewer then below is what it says:

0 投票
4 回答
1351 浏览

c++ - 并排疯狂 - 在同一台计算机上运行二进制文件

这是我的配置:

  • 计算机 A - Windows 7、MS Visual Studio 2005 为 Win7 兼容性打了补丁 (8.0.50727.867)
  • 计算机 B - 已安装 Windows XP SP2、MS Visual Studio 2005 (8.0.50727.42)

我的项目有一些外部依赖项(预构建的 DLL——在A上构建或从 Internet 下载)、几个从源代码构建的 DLL 和一个可执行文件。我主要在A上开发,那里一切都很好。在某些时候,我尝试在计算机B上构建我的项目,将预构建的 DLL 复制到输出文件夹。一切都很好,但试图启动我的应用程序我得到了

应用程序未能正确初始化 (0xc0150002)....

事件日志包含其中两个:

无法找到依赖程序集 Microsoft.VC80.CRT 并且上次错误是 引用的程序集未安装在您的系统上。

加上稍微有趣的

为 some.dll 生成激活上下文失败。参考错误信息:操作成功完成。

在这一点上,我正在尝试我的 Google-Fu,但徒劳无功 - 几乎所有点击都是关于在安装 Visual Studio 的机器上运行二进制文件。然而,就我而言,可执行文件无法在它们构建的计算机上运行。

下一步是尝试依赖walker,它让我更加困惑-我从同一个盒子上的源代码构建的DLL无法找到MSVCR80.DLLMSVCP80.DLL但是对于这两个DLL,可执行文件似乎没问题,即当我使用依赖walker打开可执行文件时表明MSVC?80.DLL可以找到 s,但是当我打开我的一个 DLL 时,它说找不到。这就是我完全不知道该怎么做的地方,所以我问你,亲爱的stackoverflow :)

我承认我对整个并排的事情有点模糊,所以对该主题的一般阅读也将受到赞赏。

0 投票
1 回答
289 浏览

.net - 在 IIS6.0 中并行运行托管的 .Net COM+ 服务

我们有一个托管的 .Net COM+ 组件,它继承自ServicedComponentWindows Server 2003 上的 IIS 6.0 中的 Web 应用程序,并试图将其用作并行程序集。

我们已经使用mt.exe并在测试控制台应用程序中以并行模式成功运行了程序集清单。但是,当涉及到 IIS 时,它似乎无法正常工作,而是从注册表中读取清单以尝试在那里找到 COM+ 应用程序。

使用清单生成清单 mt.exe -managedassemblyname:myassembly.dll -out:myassembly.manifest,然后将清单复制到 Web 应用程序的虚拟目录。使用filemon表明清单甚至从未被读取!

.manifest文件移动到bin目录,然后似乎可以读取它,但会出现同样的问题。

任何成功完成这项工作的人的帮助将不胜感激。

0 投票
4 回答
768 浏览

c# - .Net“任何框架”配置

我在 C# .NET 2.0 中构建了一个程序,它在框架 3.0 和 3.5 下也能很好地工作。

但是如果.NET Framework 4.0 是唯一安装的框架,它就不起作用,它需要用户安装2.0。

我在google中找到了以下配置:

将此添加到 app.config 后,我的程序可以在 .NET Framework 4.0 上运行,没有任何问题!

我搜索的是 .NET 'Any Framework' 配置,如果已安装,则在 .NET 2.0 下运行我的程序,否则在 .NET 4.0 下运行。

这个怎么做?

0 投票
2 回答
1506 浏览

windows - 1 个 DLL 中的私有并行程序集 - 它与通常的 DLL 相同吗?

我正在查看 Microsoft Windows 中的并行程序集和隔离应用程序解决方案。

文档说:

私有程序集是与应用程序一起部署的程序集,可供该应用程序独占使用。

私有程序集必须设计为与系统上其他版本的程序集并行工作。

但是,私有程序集的部署过程只是将程序集复制到应用程序的文件夹(或具有程序集名称的子文件夹)中。因此,应用程序不能使用多个版本的私有程序集。因为如果您放置另一个版本的私有程序集 - 它会覆盖旧版本。

谁可以给我解释一下这个?

如果确实如此 - 那么此类程序集与通常的带有重定向的 DLL 相比有什么优势?它们对我来说似乎非常相似,并且 manifest 似乎甚至没有在这里使用。

0 投票
2 回答
1216 浏览

c# - Visual c# project fails to run due to different versions of the same assembly

My c# application uses two different pre-packaged parsers, that each use a different strong version of Antlr.Runtime.dll.

The application throws a FileLoadException, apparently because it correctly loaded only one of the versions and could not find the other.

The <app>\bin\x86\Debug directory contains only one copy of the dll.

Note that I cannot use assembly aliases since my code doesn't directly call the versioned assemblies - they are only indirectly called via the parser assemblies.

Is this a matter of instructing Visual Studio to place the differently versioned dlls in separate directories since they have the same name? I'd like to avoid using the GAC as far as possible.

I've read many "side by side" and related articles, but none seem to address this question.

0 投票
1 回答
9418 浏览

visual-studio-2010 - Dependency Walker 错误:“ABC.DLL”的并排配置信息包含错误

我正在运行我在 Visual Studio 2010 中构建的程序,该程序使用第三方 DLL“ABC.DLL”。我在 Windows 7 64 位。

但是,由于一个 DLL,它无法运行。在此 DLL 上运行 Dependency walker 时,我收到以下错误:

错误:“...\ABC.DLL”的并排配置信息包含错误。应用程序无法启动,因为它的并排配置不正确。请查看应用程序事件日志或使用命令行 sxstrace.exe 工具了解更多详细信息 (14001)。

缺少依赖项 MSCVR80.DLL 和 MSVCP80.DLL。

我已经尝试了以下主题中的所有解决方案,但仍然遇到相同的错误。

ABC.DLL 是在 Visual Studio 2005 中构建的第三方库,我无法重建它。

我已经安装了 Visual Studio C++ 2005 Redistributable,并尝试复制从另一台计算机获取的 DLL(因为我的计算机中没有它们),但没有任何效果。

0 投票
2 回答
276 浏览

.net - .NET 3.5 或更低版本的应用程序是否会因在同一台计算机上安装 .NET 4 而产生任何风险?

我知道 .NET 支持并行执行,但是我见过一台机器有 2.0,另一台有 2.0 sp1,另一台有 .NET 3.5 的情况。在那些版本中,我正在使用的一些 Microsoft 生产的 DLL 中添加了一些方法。我认为是 System.Net.Mail。

这是一件坏事,因为我使用的是 2.0 SP1 中可用的方法,而普通 2.0 中不存在。我的应用出现异常,我的经理问我为什么不测试那个用例。 任何人都知道在哪里可以找到适合这种情况的方法列表?

底线:这种经历让我不是 100% 相信 .NET 的并列声明。

谁能告诉我.NET 4.0 的安装是否会以任何方式修改配置文件、二进制文件或以其他方式影响较低框架版本的任何内容的执行?