【发布时间】:2012-07-10 20:01:12
【问题描述】:
我正在创建一个 WIX 安装程序项目。在一个托管的自定义操作期间,我需要在安装文件夹中创建一个文件(除了 WIX 组件中指定的部署文件),默认情况下是 Program Files 文件夹。我在 Windows 7 中遇到“拒绝访问”问题。经过一番搜索,我发现人们说不建议在 Program Files 文件夹中创建文件。相反,尝试将文件创建到例如 AppData 文件夹中。例如,请参阅此链接: C# Access denied to path in a Windows Application
但我的问题是,生成的文件对我们的软件至关重要,所以它必须驻留在安装文件夹中。我的意思是,在大多数情况下,创建文件不是 SW 安装的目标 Program Files 文件夹吗?这是否意味着应该将唯一的文件添加到安装文件夹中,在安装过程中,部署的文件(基本上是 XCopy 的目标)?
我的文件无法在 WIX 中部署,即无法在安装前准备好。那么处理这种情况的正确方法或最佳实践是什么:必须在安装过程中生成一个文件,放入安装文件夹。这不是我可以放在其他地方的日志文件。我试图在 WIX 中为 INSTALLADIR 创建一个 Permission 元素,虽然它似乎违反了链接中提到的规则,但它仍然失败。谢谢!
更新:
基于 MichaelUrman 的一个评论,提供更多信息。生成的文件是软件安装后需要的,软件正常启动时需要的。而且我认为在安装后的正常使用过程中需要对其进行修改。正如我提到我对@caveman_dick 答案的评论,我的 CA 实际上处于提交阶段,我不知道它与普通的延迟 CA 是否有任何区别
【问题讨论】:
-
请说明何时需要创建和/或修改此文件。如果它只需要由安装创建或修改,则有一个答案,如果它必须在安装后的任意时间进行编辑,则有另一个答案。
-
@MichaelUrman 感谢您的评论。请看我的更新
标签: windows-7 installation wix access-denied