安装项目,自定义操作和Windows 7问题

时间:2011-05-03 14:52:50

标签: windows-7 windows-installer setup-project

我的项目和我为它设置的设置存在很大问题。 我的应用程序是在VS2005中,它在Windows 7的ApplicationData文件夹中安装了一个MDF文件(SqlExpress 2005)。

我遇到的第一个问题是当安装程序将MDF和LDF放入ApplicationData\MyApplication文件夹时,权限错误,然后我的应用程序无法访问要附加到SQL Express的文件。

所以我所做的是一个自定义动作,给予每个人权限(我知道......这不是很好)。好的,到目前为止我的应用程序都适用。

我面临的第二个问题是,如果用户不是默认的管理员帐户,当他执行msi文件时,MSI在尝试运行自定义操作时会显示2869错误。有了这个问题,我必须强制用户执行setup.exe而不是MSI文件。或者,如果用户执行MSI文件,则以某种方式进行正确的设置。

我在PostBuildEvent中阅读了有关NoImpersonate和NoImpersonate.js脚本的内容:

cscript.exe "$(ProjectDir)NoImpersonate.js" "$(BuiltOuputPath)"

但是当我这样做时,我的应用程序中的某些文件夹或错误日志不会被创建。

我希望我提供了所有信息。我需要解决这个问题,我不知道怎么做。

修改

我写了错误的目录。它不是ApplicationData,目录是ProgramData。对不起。

1 个答案:

答案 0 :(得分:1)

  

我得到的第一个问题是什么时候   安装程序将mdf和ldf放入   ApplicationData \ MyApplication文件夹,   权限错误

您使用的是用户Application Data文件夹还是所有用户文件夹?另外,您需要什么权限?

如果使用每用户文件夹,则无需设置任何权限。如果您使用的是所有用户文件夹,则应用程序应始终以管理员权限运行,以便可以在该位置写入。

  

我面临的第二个问题是,如果   用户,不是默认值   管理员帐户,然后是用户   执行,msi文件,然后是msi   尝试时执行2869错误   制作自定义动作。

这是因为自定义操作失败。您的方法不正确,您不需要为Application Data文件夹设置自定义权限。所以你不需要任何自定义动作。