【问题标题】:Best way to do bindingRedirect for Microsoft dll versions?为 Microsoft dll 版本执行 bindingRedirect 的最佳方法?
【发布时间】:2011-04-19 22:27:50
【问题描述】:

我以为我理解这个垃圾......

我有一个编译为使用 MFC dll 版本 9.0.21022.8 的 exe,并试图安装到一台没有 x86_vc9 任何东西的机器上 - 根本没有 x86。只是amd。

无论如何,我以为我在安装程序中携带了我需要的东西,但看起来我的文件相对于 exe 位于错误的位置,并且没有我需要的 bindingRedirect 条目。

我的 exe 目录下的目录中有 MS dll,例如:

Exe Dir\Microsoft.VC90.MFC\dlls 和清单

Exe Dir\Microsoft.VC90.CRT\dlls 和清单

dll 和清单适用于版本 9.0.30729.1。

首先,dll 和 manifest 是否应该只在 exe 目录而不是子目录中?

其次,我在每个清单中放置了一个包含 bindingRedirect 条目的dependentAssembly 部分的依赖项,但仍然没有运气。那是放它的地方吗?我应该在应用程序清单中粘贴 bindingRedirect 的东西吗?

任何帮助/想法表示赞赏。

【问题讨论】:

  • 好的 - 我想出了如何应对我的情况。我刚刚将我的支持文件恢复到 9.0.21022.8。但是,如果确切知道如何让我的 exe 使用新版本而不是旧版本,那就太好了。
  • 我知道发生了什么,将 9.0.21022.8 作为请求的版本是有意义的。

标签: assemblies manifest


【解决方案1】:

将支持文件恢复到 9.0.21022.8。编译/链接过程将使用为 Visual Studio 安装的任何版本。这意味着,在这种情况下,生成的二进制文件将默认使用 9.0.21022.8。如果我安装了需要使用较新 dll 版本的 VS 服务包或更新,例如用于控件或诸如此类的东西,那么我的二进制文件将需要该版本,并且我需要在我的支持文件中携带它。

【讨论】:

    猜你喜欢
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多