我想知道为什么拖放工作,而且复制粘贴没有。通过复制和粘贴不会发生的拖放会发生什么?
答案 0 :(得分:15)
当您将程序集拖放到C:\windows\assembly
文件夹中时,它并没有真正复制到那里 - 一个特殊的Windows资源管理器插件callis gacutil
来将程序集安装到GAC中。
这个资源管理器插件可能令人困惑,因为它可能让人觉得GAC只是简单的文件夹,包含大量的DLL。 实际上,它是一个分层结构,每个程序集名称都有一个文件夹,其中有不同版本的文件夹,依此类推。
如果您想查看真实的 GAC结构,请在Windows注册表中打开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion
并将DWORD DisableCacheViewer
设置为1
。这将禁用缓存查看器插件,使GAC看起来如此简单(但它也会拖放安装无法使用 - 你必须自己调用gacutil
)。当然,如果您不想搞乱注册表设置,也可以使用备用文件管理器或控制台。
至于复制粘贴不起作用的原因,我相信设计Cache Viewer插件的人认为拖放是在GAC中放置某些内容的一个很好的比喻,而实现复制并且粘贴会让GAC看起来像一个普通的文件夹 - 它不是 。
答案 1 :(得分:0)
谢谢丹·阿布拉莫夫: 我在那个上添加了更多的东西
问题:复制和粘贴在程序集下无法安装新的dll(C:\ windows \ assembly文件夹)
答案: - 您可以通过 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Fusion 下的字符串“DisableCacheViewer”DWORD更改regedit条目来查看文件夹架构,因为它“1”
所以你可以看到同样的文件夹视图。
您可以通过实用程序转储所有其他程序集Dll 打开CMD并在下面键入以使用该实用程序 安装 “gacutil / i .dll”
联合国安装“gacutil / u .dll”
如果您需要安装/卸载多个程序集,那么您可以使用
/ IL
和
/ UL
选项
最好的是 您可以制作批处理文件并在其下运行 “C:\ Program Files(x86)\ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin”仅限
谢谢 Ashutosh Soni