应用程序需要使用 COM 引用Microsoft Shell Control And Automation
,它位于C:\Windows\system32\shell32.dll
但是在添加了它的引用之后,VS 2010Interop.Shell32.DLL
在目标构建目录中添加了一个 dll。一切正常。但是在构建 MSI 设置向导项目时。它添加shell32.dll
为依赖项。好吧,没问题。
但是在安装时,它也会复制shell32.dll
到Interop.Shell32.DLL
目标安装目录中,现在当应用程序运行时它会显示奇怪的错误。但是,如果我从安装目录中手动删除shell32
,一切正常。
为什么 MSIshell32.dll
在安装目录中复制?64位操作系统需要吗?如果是,为什么Interop.Shell32.DLL
?对于我的应用程序,shell32.dll
似乎有问题,有没有办法可以避免它被复制?
编辑:
我从安装项目中排除shell32.dll
,在 64 位操作系统中会出现问题吗?
Edit2:
实际上是 5KB,但 MSI 复制了 11 MB shell32.dll
。C:\Windows\system32\
它是什么 ?