【发布时间】:2013-10-22 03:21:26
【问题描述】:
应用程序需要使用COM引用Microsoft Shell Control And Automation,它位于C:\Windows\system32\shell32.dll
但是在添加了它的引用之后,VS 2010 在目标构建目录中添加了一个 dll Interop.Shell32.DLL。一切正常。但是在构建 MSI 设置向导项目时。它将shell32.dll 添加为依赖项。好的,没问题。
但是在安装时,它还会在目标安装目录中复制shell32.dll 和Interop.Shell32.DLL,现在当应用程序运行时它会显示奇怪的错误。但是如果我从安装目录中手动删除shell32,一切正常。
为什么 MSI 将shell32.dll 复制到安装目录中? 64位操作系统需要吗?如果是,为什么Interop.Shell32.DLL ?
对于我的应用,shell32.dll 似乎是个问题,有没有办法可以避免它被复制?
编辑:
我从安装项目中排除了shell32.dll,在 64 位操作系统中会不会有问题?
编辑2:
shell32.dll C:\Windows\system32\ 实际上是 5KB,但 MSI 复制了 11 MB。这是什么?
【问题讨论】:
标签: c# .net visual-studio-2010 dll