因此,在Win 2008 R2 Std x64上,我有6(六)个gacutil.exe,它们都不同(不计算VS文件夹中的文件),分别位于:
c:\Program Files\Microsoft SDKs\Windows\v6.0A\Binc:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Binc:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64- c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools
c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64
问题如下:
x64
版本在行为上是否有任何区别?- 我应该偏好
v7.0A
版本而不是其他v6.0A
版本吗? - 我应该使用
NETFX 4.0 Tools
版本来处理.NET 4.0程序集,并使用标准版本来处理其余部分吗?
或者,如果有一些通用类型的文章可以阅读,我会非常感激。
更新1. 关于Hans Passant的答案:
- gacutil.exe是.NET Framework的一个工具,属于“构建、部署和配置工具(.NET Framework)”,现在已经过时。而shfusion.dll就是之前的版本;
- 实际上,v6.0A是从VS2008安装中获取的,可以忽略(1,2);
- 64位解释理论听起来也很合理。 我还假设有一个IA64版本的gacutil.exe,因此对于每个平台都有一份“工具副本”,只是由于Wow64,x86版本在任何地方都可以运行良好。 从列表中减去2个gacutil版本 (4,6);
- 关于使用哪个版本的部分似乎是错误的。 V4.0 gacutil.exe会根据其目标CLR检测和放置程序集,并且可用于.NET 4.0和早期版本的程序集。那么问题是为什么还要保留V2.0 gacutil.exe?我猜为了在没有.NET4.0的环境中进行部署。
- 问题并非在于是否使用GAC,因此我不对最后一段进行评论。
- 没有。
- 无所谓,但使用更新版本更合理。
- 不需要,只要.NETFX 4.0 Tools可用就可以完成所有GAC操作。
更新2。
因此,在Windows x86和x64上进行所有GAC操作时,我认为可以安全地使用3号(如果.NET4.0不可用)或5号。问题的答案是: