C# 已安装的应用程序没有';我在任何地方都没有写权限

C# 已安装的应用程序没有';我在任何地方都没有写权限,c#,permissions,wix,installation,C#,Permissions,Wix,Installation,我创建了一个C#应用程序,没有想到所有调试都是使用管理员权限完成的,就像我在Windows中经常使用的那样 现在,我已经使用WiX创建了一个.MSI安装程序来安装我的应用程序,该应用程序没有对appdata、C:\tmp或类似程序的写入权限 我的应用程序需要在文件系统的某个地方写入一些临时文件,我如何在不需要应用程序管理员权限的情况下实现这一点?应用程序不会执行任何需要管理员提升的操作 尝试使用Environment.GetFolderPath(Environment.SpecialFolder

我创建了一个C#应用程序,没有想到所有调试都是使用管理员权限完成的,就像我在Windows中经常使用的那样

现在,我已经使用WiX创建了一个.MSI安装程序来安装我的应用程序,该应用程序没有对appdata、C:\tmp或类似程序的写入权限


我的应用程序需要在文件系统的某个地方写入一些临时文件,我如何在不需要应用程序管理员权限的情况下实现这一点?应用程序不会执行任何需要管理员提升的操作

尝试使用
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
。应用程序应该始终可以访问它

您可以尝试使用
System.IO.Path.GetTempPath()
获取临时目录


如果这不起作用,你可以尝试找到一个非系统分区并在那里创建一个隐藏文件夹。

因为我只需要一个临时文件来读写,所以我可以使用Windows API为我的应用程序获取一个临时文件

string tempFile = Path.GetTempFileName();

现在我可以随意写入和读取
tempFile
的路径。请注意,此文件在退出时会被删除,并且每次调用
Path.GetTempFileName()

都会创建一个新文件,您要写入的确切路径是什么?您只能通过临时文件写入每个用户的目录,可能是?@slaks%appdata%\myApp(由wix创建并具有权限),c:\temp,mydocs…@lemon42我指的是文本文件,在执行特定任务之前将使用一些自定义内容创建,在执行后删除。我还可以使用你的建议吗?如前所述,我也没有访问权限:你可以尝试查找临时文件夹或在其他分区上创建一个隐藏文件夹。我认为这是错误的,在用户不知情的情况下创建文件夹。