WinSxS:如何依赖特定版本的gdiplus.dll?

2023-11-30

我需要添加对特定版本的 GDIPlus 的依赖项。这是我想要的 GDI+ 版本:

alt text

我想确保我使用此版本是出于特定的兼容性原因。

我已将程序集清单添加到我的可执行文件中,定义了对版本的依赖关系GdiPlus:

<dependency>
   <dependentAssembly>
      <assemblyIdentity 
            type="win32" name="Microsoft.Windows.GdiPlus" 
            pubicKeyToken="6595b64144ccf1df" 
            version="5.1.3102.2180" processorArchitecture="x86"
            language="*" />
   </dependentAssembly>
</dependency>

除了当我运行我的应用程序时,Windows 的 fusion loader 会从 Side-by-Side 文件夹中提供一些其他版本的 gdiplus.dll,我可以在 Process Explorer 中看到它:

alt text

它给了我版本5.02.6002.18005, 而不是5.1.3102.2180.

所以问题是:如何获取对特定版本的 Windows dll 的依赖关系?


您的“问题”是安装了一个策略文件,该文件指定可以将 5.1.3102.2180 的请求重定向到 5.02.6002.18005

这通常是一件好事。它允许应用程序在清单中指定它们构建的版本,但是当引入关键的安全修复程序时,操作系统可以将应用程序重定向到兼容版本。

因此,这里将发生的情况是,您的应用程序将在任何仅安装了 5.1 的 PC 上链接到 GDI+ 5.1。但任何配备 5.2 GDI+ 的 PC,您都会被重定向到该位置。

如果您确实有一个诚实的理由为什么要使用 5.1,即使 5.2 可用......我认为您可以使用应用程序配置文件来管理它。

创建一个名为 yourapp.exe.config 的文件 - 如果应用程序中导入 GDI+ 的模块是 dll,那么它将是 thedll.dll.2.config

但是我不确定如何构造绑定重定向。即,考虑到策略文件重定向,我不确定您是否需要将旧版本重定向回其本身,或将新版本重定向回旧版本。或者是什么。可能需要一些尝试和错误。

.config 文件中的数据看起来几乎与清单文件中的数据完全相同。像这样的东西(它几乎完全模仿了winsxs中安装的策略文件的内容,该文件正在执行您不想要的重定向)。

<configuration>
  <windows>
    <assemblyBinding xmlns=...>
      <dependentAssembly name="GdiPlus...>
        <bindingRedirect oldVersion="5.1.x.x" newVersion="5.1.x.x"/>

为了使“oldVersion”的选择更容易,它支持范围语法。所以

oldVersion="5.0.0.0-5.3.0.0"

将是确保整个 GdiPlus 版本重定向到特定版本的简单方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WinSxS:如何依赖特定版本的gdiplus.dll? 的相关文章

  • 你知道 Windows 上有类似的 wc(unix 字数统计命令)程序吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 快速搜索给了我陶巴瓦厕所 http www tawbaware com wc htm 但它不接受 std
  • 如何使用 Python 与窗口的 GUI 交互?

    假设您想打开myapp exe 打开第三个菜单 然后选择第二个菜单项 即像用户使用键盘或鼠标一样 然后在对话框窗口中选择第二个按钮 pyahk https pyahk readthedocs io en latest and pyautog
  • 我如何移动粘性/捕捉 wpf 窗口

    当我移动 主 窗口时 我想移动两个或更多粘性窗口 我想做这样的事情 private void MainWindow PreviewMouseMove object sender MouseEventArgs e if e LeftButto
  • 每个进程每个线程的时间量

    我有一个关于 Windows 和 Linux 中进程和线程的时间量子的问题 我知道操作系统通常为每个线程提供固定的时间量 我知道时间量根据前台或后台线程而变化 也可能根据进程的优先级而变化 每个进程有固定的时间量吗 例如 如果操作系统为每个
  • 如何在子 shell 中运行 cmd.exe 批处理文件

    我有一个批处理文件 通常像这样调用 longjob cmd gt result txt 2 gt 1 这工作正常 但脚本在执行过程中更改了目录 将我的 shell 留在该目录中 这很麻烦 有没有办法在子 shell 中运行命令 同时仍然允许
  • PostgreSql“运行安装后步骤...数据库集群初始化失败”

    我是一名 Windows 用户 我花了几个小时不断地安装和卸载 然后才使其正常工作 前 10 次左右才看到标题中的错误消息 我将其作为一个自我回答的问题放在这里 以防止其他人在安装时可能遇到同样的问题 并为像我这样第一次使用 Postgre
  • 使用 Windows 批处理文件在文本文件中添加新行

    我有一个文本文件 其中有 200 多行 我只想在第 4 行之前添加一个新行 我使用的是 Windows XP 输入前的示例文本文件 header 1 header 2 header 3 details 1 details 2 输出后 hea
  • 哪个版本的 Miniconda 具有适用于 Windows 64 位的 Python 3.6?

    我正在开发一个需要这些深度学习库的项目 keras 和 tensorflow 不幸的是 这些不适用于 Python 3 7 有人可以告诉我一个带有 Python 3 6 的 Miniconda 版本 适用于 Windows 64 位 吗 我
  • MinGW Make 抛出“系统找不到指定的路径。”错误

    我正在尝试在 Windows 7 上使用 cmake 生成一个 c 项目 在实际创建项目之前 cmake 会对您的工具链进行快速测试 我正在使用 MinGW 这就是我的问题所在 Cmake 触发 make 构建 最终失败并返回 系统找不到指
  • 无法启动 Windows 服务,错误 1064

    我编写了一个在 Win10 上运行的 Windows 服务 它运行得非常好 直到我决定对其进行一些更改 我重写了一些逻辑 在调试和发布配置中进行了测试 一切都很好 然后 我使用卸载了当前版本的服务installutil exe u serv
  • 在运行时,我如何判断我是否在 WinXP+ 上? win32

    我正在进行一些 win32 字符串 API 调用 并假设字符串以宽字符串形式出现 这在 XP 和更高版本上有效 我该如何断言这一点 这是运行时检查还是编译时检查 我做错了吗 这是一个例子 typedef std basic string
  • Jenkins 可以检测到任何 svn 用户每次提交代码吗?

    Jenkins 可以检测到任何 svn 用户每次提交代码吗 我想知道每次 Jenkins 提交 svn user 时 有什么方法或 jenkins 插件吗 现在我用svn updateJenkins 中的 cmd 来更新 svn 您可以按照
  • 在Windows 7上安装curl后缺少libcurl-4.dll

    按照这个人的安装curl后指示 https stackoverflow com a 28757477 1186038 除了第 2 步 已安装Win64 OpenSSL v1 0 1u 轻型相反 因为下载页面中缺少版本 k http slpr
  • VB - 以隐式方式链接 DLL

    我正在开发 VB6 图形界面 并且需要隐式链接到 DLL 这样做的动机来自于我上一个问题 https stackoverflow com questions 5194573 有问题的 DLL 使用静态 TLS declspec thread
  • 我应该如何缓冲绘制的矩形以提高性能(C#/.NET/WinForms/GDI+)

    我在做什么 我正在开发一个 C NET 4 7 2 WinForms 应用程序 它使用以下命令在表单上绘制大量填充矩形Graphics FillRectangle https learn microsoft com en us dotnet
  • C++ 使用 Windows 命名管道

    由于某种原因 桅杆和从属装置都失败了 但是我可以找到任何关于它们如何工作的好例子 所以我不确定我哪里出了问题 在 ConnectNamedPipe 之后 主设备永远不会退出 WaitForSingleObject 并且从设备在第一个 boo
  • 可以读取目标文件吗?

    我很好奇 obj文件 我几乎不知道它们是什么 或者它们包含什么 所以我用 Vim 文本编辑器打开它们 我在里面发现了一种类似外星人的语言 有什么办法可以理解它们代表什么以及它们的内容是什么 另外 它们的用途是什么 Thanks Sure 但
  • 仅在单个端口 8080 上转发到本地主机(Windows)可能吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我知道如何在 Windows 上使用 xampp 设置本地网络服务器 我在主机文件 c windows system32 drivers etc ho
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys

随机推荐

  • 是否有一行语法用于构造包含对临时对象的引用的结构?

    考虑以下无效的 Rust 代码 有一个结构体Foo包含对第二个结构的引用Bar struct Foo lt a gt bar a Bar impl lt a gt Foo lt a gt fn new bar a Bar gt Foo lt
  • PHP 使用函数返回值作为数组

    为什么这有效 cacheMatchesNotPlayed cache gt load externalData cacheMatchesNotPlayed cacheMatchesNotPlayed matchesNotPlayed 但这不
  • 帕斯卡的三角行序列

    我目前正在努力寻找帕斯卡三角形的行序列 我想输入行号并输出列表中直到该行的数字序列 例如 Pascal 4 会给出结果 1 1 1 1 2 1 1 3 3 1 我正在尝试使用我发现的算法 这是算法本身 Vc Vc 1 r c c r and
  • MySQL:选择日期范围内的所有日期并获取与日期匹配的表数据

    有一个表 其中包含这样的数据 id date 1 2016 07 11 2 2016 07 11 3 2016 07 15 4 2016 07 15 5 2016 07 15 6 2016 07 16 7 2016 07 19 8 2016
  • Android EditText setError() 无法按预期工作

    我有问题setError on EditText 当活动打开时 它会检查某些字段是否为空 如果为空 则在其上设置错误消息 但是 只有当我在字段中写入一些文本然后将其删除时 才会显示感叹号图标 如果我失去对该字段的关注 该图标将再次消失 两个
  • Hadoop Mapreduce 控制台输出说明

    我是hadoop环境的新手 我已经设置了2节点hadoop集群 然后我运行示例 MapReduce 应用程序 实际上是字数 然后我得到这样的输出 File System Counters FILE Number of bytes read
  • 关于 unique_ptr 性能

    我经常读到 在大多数情况下 unique ptr 会比 share ptr 更受青睐 因为 unique ptr 是不可复制的 并且具有移动语义 由于复制和引用计数 shared ptr 会增加开销 但是当我在某些情况下测试 unique
  • Simba ODBC 连接到增量表并使用 .Net C# 从增量格式表读取数据

    我正在尝试使用 C 通过 simba odbc 驱动程序从增量格式表中读取数据 增量格式表示例 已按照中的说明下载并配置 simba odbchttps www simba com products Spark doc ODBC Insta
  • 硬件加速活动 - 如何获取 OpenGL 纹理大小限制?

    我正在尝试在 Honeycomb 中启用硬件加速 并在 Canvas 上显示一些位图 一切正常 但对于大型位图 一维 gt 2048 我在日志中收到错误 OpenGLRenderer 位图太大 无法上传到纹理中 我知道这是因为硬件限制 如果
  • JSF commandButton - 将 POST 参数传递到外部站点

    我需要一个将我重定向到不同站点并发送 POST 参数的链接 就像是
  • php文件上传问题

    这段代码在我的本地主机上运行正常 我正在使用 xampp 1 7 3 但是当我把它放入实时服务器时它显示Possible file upload attack upload 是服务器上 public html 文件夹下的文件夹 我可以通过该
  • NodeJS 数组同步?

    var membersStatArray membersArray forEach function member db doneTodo find victor id member id then arrayOfUserVictories
  • PHP、MySQL 和时区

    我正在尝试在我的应用程序中集成时区系统 到目前为止 我确实努力避免制作时区感知应用程序 但它现在是强制性要求 所以别无选择 时区这件事超出了我的想象 我已经阅读了 PHP net 和其他网站上的几个主题 包括但不限于 SO 但我始终无法掌握
  • Java - 如何从 Android 中的 azure 移动服务检索和使用单个值

    我是 azure 的新手 但我知道某些事情 例如如何检索数据并将数据存储到 azure 为此我遵循了 azure 官方文档 链接在这里 https azure microsoft com en in documentation articl
  • 如何使用 C# 读取和标记(突出显示)pdf 文件

    我有一个 pdf 文件 我正在逐页阅读该文件 现在从第 4 页开始 我的 pdf 包含帐单信息 这些帐单信息位于示例部分下 比如说一个是本地帐单信息 另一个是 STD 帐单信息等 现在根据我的要求 如果用户想要验证本地账单信息 我的代码应该
  • 在 MVC 4 中将图像附加到 ActionLink

    我在 MVC 4 应用程序中使用带有 id 的 ActionLink 并在 css 中分配 actionLink id 图像 但实际上我做错了 不管用 这是我的代码 div class logo container Html ActionL
  • 设置 NSManagedObject 上双精度属性的值

    我正在尝试在我的应用程序上实现地图功能 但是 我希望将纬度和经度从存储在核心数据中的对象传递到地图中 但是 当我启动应用程序时 我在设置对象的初始值时遇到问题 到目前为止 我已经尝试了两种不同的方法 每种方法收到的错误都是 将 double
  • 从互联网上的txt文件中获取文本

    我有一个 uwp 我需要从互联网上保存的 txt 文件中获取文本以进行字符串下载文件并将文本获取到字符串时遇到问题 这是我的代码 var webRequest WebRequest Create http yourUrl using var
  • missViewControllerAnimated自定义动画

    我试图用自定义动画调用missViewControllerAnimated 但它似乎不起作用 当我呈现视图控制器时 如下所示 cameraUI UIImagePickerController cameraUI delegate self c
  • WinSxS:如何依赖特定版本的gdiplus.dll?

    我需要添加对特定版本的 GDIPlus 的依赖项 这是我想要的 GDI 版本 我想确保我使用此版本是出于特定的兼容性原因 我已将程序集清单添加到我的可执行文件中 定义了对版本的依赖关系GdiPlus