可以在调试器下访问Temp文件夹,但在安装时不能访问

时间:2012-01-09 23:03:08

标签: c# permissions setup-project

这可能是一个权限问题,但我似乎无法弄明白。我的应用程序需要在运行时存储临时数据,所以我使用Path.GetTempPath()来获取临时目录的路径,然后提出要使用的文件名。我的问题是,当在调试器下运行时,或者我只是从发布版本启动exe时,这完全正常;但是当使用安装项目安装程序时,安装的版本将失败。

我正在使用ManagedEsent作为临时磁盘数据存储 - 我不知道这是否相关 - 所以我将tempDir +文件名传递给它。运行已安装版本的错误是“错误:无法访问文件,文件被锁定或正在使用”,我认为这是由Esent生成的。我只在一个实例上运行一个线程,因此该文件不应该存在争用。

安装的程序写入Temp目录是否存在一些权限问题?在工作和非工作情况下,temp dir路径都是我所期望的,username \ AppData \ Local \ Temp。我是否需要以某种方式在安装期间授予应用程序权限以访问该目录,如果是,如何?感谢。

更新: 应用程序详细信息:该应用程序不是Windows服务 - 它是一个相当普通的桌面应用程序,具有单个主窗体和一些对话框。框架版本4.我正在通过安装项目安装它。安装项目有一个自定义操作,我在其中初始化注册表中的一些数据存储(但注册表与临时数据存储无关)。

最终更新: 好吧 - 这是我真的很蠢的一个例子。有一个深深埋藏的声明,用于调试目的,将目录从临时位置切换到另一个。所以最后这是一个许可问题,而不是写给TEMP。啊。

0 个答案:

没有答案