我有一个非常简单的安装项目,它将三个dll复制到GAC中。这就是它所要做的一切。它在XP中工作正常,但在Vista机器上,它出错并声明它无法写入文件并检查权限。我确定这与Vista中的一些假冒废话有关,但我不确定如何解决它。
有没有其他人遇到过这个问题,你是如何克服它的呢?
答案 0 :(得分:1)
您使用gacutil.exe来安装dll吗?或者你只是复制文件?
无论如何,GAC应该避免使用自定义dll,除非它们被许多应用程序使用。使dll保持与应用程序关闭/本地:它只会花费您一些磁盘空间,并且它使您能够使用简单的Xcopy部署。
答案 1 :(得分:1)
如果您使用的是Windows Installer,是否要将程序集放入特殊的全局程序集缓存文件夹中?这在Vista和Windows 7上一直对我有用。不需要使用GACUtil或其他任何东西,只需将程序集放在安装程序项目的正确文件夹中。
答案 2 :(得分:0)
我有一些(第三方)MSI无法正确安装,除非我从一开始就强制提升模式,即使他们在此过程中稍后会显示UAC提示。
疑难解答...我假设您是从管理员帐户安装的。但是,是否启用了UAC?如果是,您是否收到UAC提升?尝试在提升模式下运行MSI包以查看它是否有效。从提升的命令提示符:
msiexec /i setup.msi
答案 3 :(得分:0)
您使用什么编译器来制作MSI?在上周末之后,我可能成为MSI与Vista问题的专家:)
如果使用VC2003或VC2005,则根据编译器版本存在不同的问题。
如果是2005,请务必安装Service Pack和Vista Service Pack。这可以解决你的问题。
如果失败,您可以使用自定义操作将它们放入GAC,但要注意2005年存在错误设置no_impersonate位的错误。您必须使用脚本或orca.exe自行设置此位。