C#无法写入Application.ExecutablePath,有些框我可以,有些我不能?从该服务器卸载

C#无法写入Application.ExecutablePath,有些框我可以,有些我不能?从该服务器卸载,c#,.net,path,C#,.net,Path,所以我一直写信给 Environment.SpecialFolder.ApplicationData 卸载时需要删除此数据文件。我正在使用来构建我的安装程序。这对我很有用。所以我的数据文件挂起在上面的路径中,我在尝试将其写入时会这样做 Application.ExecutablePath 我测试它的某些盒子会在我试图在那里写入数据时抛出一个严重的错误。我做研究,但不知怎么的,它并不总是可写的,这就是我是如何想到Environment.SpecialFolder.ApplicationDat

所以我一直写信给

Environment.SpecialFolder.ApplicationData 
卸载时需要删除此数据文件。我正在使用来构建我的安装程序。这对我很有用。所以我的数据文件挂起在上面的路径中,我在尝试将其写入时会这样做

Application.ExecutablePath
我测试它的某些盒子会在我试图在那里写入数据时抛出一个严重的错误。我做研究,但不知怎么的,它并不总是可写的,这就是我是如何想到Environment.SpecialFolder.ApplicationData的

这就是为什么我的数据文件现在位于SpecialFolder.ApplicationData中。问题是,如果用户卸载并重新安装,我需要该文件消失。这可能是我对Innos知识的一个短暂的了解,但我不知道如何知道该文件将在哪里告诉Innos

于是我想我有了一个聪明的解决方案:Innos卸载完后可以运行一个文件,所以我让我的程序创建了这个文件“uninstallData.bat”,上面写着:

del "the file in my special folder application data path"
我把它写给了drumroll

(是的,这是一段时间的发展,我忘记了这是不可行的。)

所以我当然又回到了原点,我需要将一个文件写入Innos知道的关于{app}的路径,并且我需要它能够在SpecialFolder中删除我的数据文件。。。我不管怎么做,我只需要把那个文件弄走

还有其他的环境吗。或应用程序。我错过的途径?可能是某个卸载程序可以查看并可以写入的地方

顺便说一句,我不知道为什么我开发的盒子可以写入应用程序文件夹没有问题,但它不能在其他盒子上。。。奇怪


任何输入都会丢失,无法了解如何破解此螺母。

appliction.ExecutablePath根据标准定义是不可写的-运行的应用程序永远不应操作program files文件夹。该区域的特殊文件夹数。很高兴你终于找到了。。。。微软长期(至少10年)正确记录的内容


我建议你找一个合适的安装程序-我想到了WIX。您的问题与C#完全无关-它似乎完全是一个“蹩脚的安装程序”问题。或者提供卸载时运行的程序(不是bat文件)。您的问题具体是什么?

环境位置在用户配置文件中。如果机器上有多个用户,并且他们都运行应用程序,那么每个配置文件中都会有一个文件副本

路径也取决于操作系统


无论如何,当前用户的应用程序数据位置由
%APPDATA%
%LOCALAPPDATA%
指向。这些Windows环境变量应该在Innos中可用。

请重新编写您的问题,以便每个人都能理解您所说的内容……默认情况下,在Windows XP及以上应用程序上。ExecutablePath需要管理员权限(或至少是超级用户)才能写入。我想这是个蹩脚的安装程序。我可以编写一个单独的小文件来删除特殊文件夹中的数据文件。因为我不确定特殊文件夹的“标准”程度。它们是否随操作系统的不同而变化。我想现在我知道它叫“特殊文件夹”,我可以查了。实际上你应该查一下。这是一个完整的记录了很长一段时间。我可以回答这个问题,但是说真的-只要在Visual Studio中标记F1,您就可以获得所有文档。谢谢,我将尝试使用Innos。
Application.ExecutablePath