2008-12-19 59 views
6

我有一个非常简单的安装项目,可以将三个dll复制到GAC中。这就是所要做的。它在XP中运行正常,但在Vista机器上,它错误地指出它无法写入文件并检查权限。我敢肯定这与Vista中的一些假冒废话有关,但我不知道如何解决它。为Vista创建MSI安装程序时需要执行哪些额外步骤?

有没有其他人遇到过这个问题,如果是这样,你是如何克服的?

回答

1

如果您使用Windows Installer,是否将您的程序集放入特殊的全局程序集缓存文件夹中?这对我在Vista和Windows 7上一直很有用。不需要使用GACUtil或其他任何东西,只需将程序集放在安装程序项目的正确文件夹中即可。

1

您使用gacutil.exe来安装dll?或者你只是复制文件?

无论如何,GAC应该避免使用自定义dll,除非它们被许多应用程序使用。使应用程序关闭/本地磁盘:它只会花费你一些磁盘空间,并且它使您能够使用简单的Xcopy部署。

+0

感谢您的回复,但您可以免除使用GAC的讲座。我知道何时何时不使用它。在这种情况下,我需要利用GAC。这就是为什么我问这个问题并创建了一个安装程序来自动执行这个过程。 – Kilhoffer 2008-12-20 15:01:07

0

我已经有一些(第三方)MSI的,它将不会正确安装,除非我强制升级模式从一开始,即使他们稍后在过程中显示UAC提示。

疑难解答......我假设您是从管理员帐户安装的。但是,是否启用了UAC?如果是,您是否获得了UAC提升提示?尝试在提升模式下运行MSI软件包以查看它是否有效。从提升的命令提示符:

msiexec /i setup.msi 
0

您使用什么编译器来制作MSI?在上个周末的乐趣之后,我可能是MSI和Vista问题的专家:)

如果使用VC2003或VC2005,根据编译器版本的不同,会有不同的问题。

如果是2005,请务必安装Service Pack和Vista Service Pack。这可能会解决你的问题。

如果失败,可以通过自定义操作将它们放入GAC中,但请注意,2005年有一个错误,其中no_impersonate位设置不正确。您必须使用脚本或orca.exe自行设置此位。

相关问题