Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 7 安装项目、自定义操作和Windows 7问题_Windows 7_Windows Installer_Setup Project - Fatal编程技术网

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

Windows 7 安装项目、自定义操作和Windows 7问题,windows-7,windows-installer,setup-project,Windows 7,Windows Installer,Setup Project,我有一个大问题,我的项目和设置,我为它。 我的应用程序在VS2005中,它在Windows7的ApplicationData文件夹中安装了一个MDF文件(SqlExpress 2005) 我遇到的第一个问题是,当安装程序将MDF和LDF放入ApplicationData\MyApplication文件夹时,权限错误,然后我的应用程序无法访问要附加到SQL Express的文件 所以我做的是一个自定义操作,它给每个人权限(我知道……这不是很好)。好的,到目前为止,我的应用程序可以使用它 我面临的第

我有一个大问题,我的项目和设置,我为它。 我的应用程序在VS2005中,它在Windows7的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。对不起

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

您使用的是“用户应用程序数据”文件夹还是“所有用户”文件夹?另外,您需要什么权限

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

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


这是因为自定义操作失败。您的方法不正确,不需要为应用程序数据文件夹设置自定义权限。因此,您不需要任何自定义操作。

ApplicationData文件夹没有用户或所有用户文件夹。。我认为您与c:\Users\…\ApplicationData混淆了。我指的文件夹是C:\ApplicationData folderI抱歉。。我在问题中放错了目录,目录是ProgramData。在Vista和Windows 7上,程序数据是“所有用户\应用程序数据”。因此,我坚持我的建议:您的应用程序应始终以管理员权限运行,以便可以在该文件夹中写入。但是,如果确实要使用自定义操作,则需要使其在不进行模拟的情况下运行。这在Visual Studio中是不可能实现的,但可以使用其他安装程序编写工具轻松实现。您是说像Installshield这样的工具吗?是的,类似于Installshield这样的工具,但更便宜。例如,您可以使用免费的WiX。