微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

替代文字http://img.zgserver.com/windows/2qiv57t.png

我想确定我正在使用此版本的特定兼容性原因。

我已经添加一个程序集清单给我的可执行文件,定义了我对GdiPlus版本的依赖

如何使用git命名空间隐藏分支

我怎么能告诉SVN工作拷贝中的所有目录在同一个仓库的根?

ClickOnce部署以及何时使用它

Git svn不使用svn凭证

在源代码中包含SVN修订版本号

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

除了当我运行我的应用程序,Windows的融合加载器给我一些其他版本的并行文件夹,我可以看到在Process Explorer中的gdiplus.dll:

替代文字http://img.zgserver.com/windows/hrwitz.png

它给我版本5.02.6002.18005 ,而不是5.1.3102.2180

所以问题是:我如何依赖于特定版本的Windows DLL?

.net安装项目强制重新安装新的文件replace

git diff和git difftool什么也不做,也不输出

在Windows上更改Mercurial中的文件名大小写

在Windows计算机上模拟多个SVN用户

在Windows上Git提交无效的字符

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

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

所以,这里将发生的事情是,你的应用程序将在任何只有5.1安装的PC上与GDI + 5.1链接。 但任何具有5.2 GDI +的PC,都将被重定向到那个位置。

如果你确实有一个诚实善良的理由,即使在5.2版本可用的情况下,为什么要使用5.1,我想你可以使用一个应用程序配置文件来管理它。

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

但我不确定如何构建bindingRedirect。 即给定策略文件重定向,我不知道如果你需要重定向旧版本本身,或新版本回旧版本。 或者是什么。 一些试验和错误可能是必需的。

.config文件中的数据与清单文件中的数据几乎完全相同。 像这样的东西(几乎完全模仿安装在winsxs中的策略文件内容,这是做你不想要的重定向)。

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

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

oldVersion="5.0.0.0-5.3.0.0"

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐