我有一个问题真的很想知道。为什么具有CRT版本30729.4148的嵌入清单的程序在运行时在winsxs文件夹中以30729.6161(最新版本)运行?
我在我的机器上安装了各种版本的visual studio 2008再分发软件包。 现在,30729.6161是最新的。
在这个环境中,我制作了一个简单的带有嵌入式清单的程序,它只引用30729.4148 CRT运行时库。
但是,当我运行该程序时,它没有加载30729.4148版本的CRT库,而是30729.6161。
为什么这样吗?
我有一个问题真的很想知道。为什么具有CRT版本30729.4148的嵌入清单的程序在运行时在winsxs文件夹中以30729.6161(最新版本)运行?
我在我的机器上安装了各种版本的visual studio 2008再分发软件包。 现在,30729.6161是最新的。
在这个环境中,我制作了一个简单的带有嵌入式清单的程序,它只引用30729.4148 CRT运行时库。
但是,当我运行该程序时,它没有加载30729.4148版本的CRT库,而是30729.6161。
为什么这样吗?
新运行时带有策略文件,可将客户端与旧版本重定向到新版本。
参见:
%WinDir%\WinSxS\Policies
谢谢您的回答维基文章。我尝试制作一个应用程序配置文件,例如MyApp.exe.config,并设置一个重定向元素,通知应用程序使用30729.4148 CRT库来管理所有30729.x版本。在运行时,但是,我的应用程序仍然加载最新的CRT库30729.6161。我的解决方案错了? –
嗯,这是政策文件重定向到新版本的任务。为什么OS要为应用程序加载旧文件? – harper
我真的不知道我的应用程序可以使用清单加载特定版本的dll。 –
看一看的Windows并排侧组装件http://en.wikipedia.org/wiki/Side-by-side_assembly – RedX