我正在一个应用程序保存Path.GetDirectoryName(FilePath)
中的文件,其中FilePath = Application.ExecutablePath
包含一些有关授权的信息。 如果我从VS运行程序,它的工作正常,但如果我做一个安装程序并安装,然后运行它,程序认为该文件已经存在。 我改变了我的程序显示在一个消息框我的FilePath
和是否File.Exists(FilePath)
返回true
或false
。 所以我看了看那条路,启用了隐藏和系统文件,F5'd几次,什么也没有。 该文件不存在,但File.Exists(FilePath)
返回true。 任何想法为什么冷这发生,我怎么能解决它?
我正在使用Windows Vista,Visual Studio 2010,C#,并使用VS的安装项目创build了我的安装程序。
编辑:我的path是: C:\ Program Files(x86)\ Helium \ License.xml 。
这是我的代码的一部分:
MessageBox.Show("LicenseFileName: " + LicenseFileName); // LicenseFileName: C:\Program Files (x86)\Helium\License.xml System.Diagnostics.Process.Start(LicenseFileName); // Nothing happens MessageBox.Show("File.Exists(LicenseFileName): " + File.Exists(LicenseFileName)); // File.Exists(LicenseFileName): true
忘了说,我已经安装了应用程序之前,所以文件曾经存在。 我使用控制面板卸载。
如果您正在安装到系统文件夹,则可能会启动Windows文件虚拟化并创建每个用户的文件副本。 因此,您的文件可能位于%userprofile%\ AppData \ Local \ VirtualStore文件夹中的某处