4

我有一些代码正在读取配置文件,但是当我在 TextPad 中打开文件时,我看到的值与我的应用程序不同。我用记事本检查了它。记事本同意我的应用程序,TextPad 显示其他内容。

这是在 Vista x64 商业版上。

知道是什么原因造成的吗?我查看了Context Menu->Properties->Previous Versions详细信息,但它说“没有以前的版本可用”。

这是复制的步骤(我不能让它可靠地发生):

  1. 在程序文件中安装了 .NET 应用程序。
  2. 该应用程序读取配置文件,但正在摔倒。
  3. 我在 Textpad 中手动编辑该配置文件。
  4. 更改不会生效。
  5. 我在记事本中打开配置文件,看到一些不同的东西。
  6. 尝试在记事本中进行更改并保存,并收到以下错误消息:

记事本

无法为 FogBugz\FogBugz > WorkingOn.exe.config 文件创建 C:\Program Files (x86)\Daniel Schaffer\WorkingOn。

确保路径和文件名正确。

我不能把内容放在这里,因为它是 XML 并且由 Superuser.com 编码,但这里有一个截屏链接: http://screencast.com/t/zhERl7mocp4

4

5 回答 5

3

当您安装应用程序时,听起来像是您没有管理员权限的情况。有时,当您安装没有管理员权限的应用程序时,由于 vista 安全模型,它的行为非常奇怪。去年我遇到了类似的问题。这不完全是,但这是一种奇怪的行为,直到我发现它是 vista 的安全模型。据我所知,它将它提升到应用程序/用户安全上下文中,当我读到它时我的大脑冻结了,因为它纯粹是垃圾,从我所看到的来看几乎毫无用处。

尝试以管理员身份运行打开 Textpad(优秀的应用程序),然后编辑配置。走着瞧吧。如果它保持不变,那么它就是一个私人问题。如果这不起作用,请卸载您的应用程序,然后以管理员身份安装它。这将为应用程序提供写管理员权限来工作。然后当你编辑配置。看看这是否有效。

看看这个。您可以使用此处找到的技术提升应用程序以管理员身份运行。如何提升应用程序。. 在重新安装之前尝试所有这些。

如果这不起作用,请将您的问题发布到服务器故障。也将其发布到合适的 MSDN 论坛。

希望有所帮助。鲍勃。

于 2009-10-06T10:35:08.410 回答
2

这很有趣。我的猜测是,一个名为UAC 虚拟化(又名数据重定向)的 Vista 功能正在发挥作用。它基本上将遗留应用程序重定向到,%USERPROFILE%\AppData\VirtualStore\Program Files\...以便它们可以在程序目录中写入文件。

也许 Textpad 尝试以读写模式打开文件,而您的应用程序和记事本都以只读方式使用它?您可以启动Process Monitor以查看确切的魔法,告诉我 ;-)

于 2009-10-10T08:52:07.470 回答
1

尝试从应用程序名称中删除该空白字符;我的猜测与规范路径构建有关

于 2009-10-10T18:39:09.897 回答
0

尝试将文件复制到另一个路径并重新打开它。看看它是否会改变结果。

于 2009-10-11T14:07:51.807 回答
0

您可以做的一件事是观察每种方法最终打开的确切文件。去做这个,

  • 从 sysinternal 套件启动Process Monitor 。
  • 仅查找文件操作(取消选择工具栏右侧的注册表操作)
  • 只选择你自己的进程(过滤掉所有你不关心的进程,或者include过滤列表中只选择你自己的进程名)

您也可以简单地使用文件名的搜索功能,这可能是更快的途径。

过程监视器帮助我发现了很多问题,这太棒了。

于 2009-10-11T20:43:47.360 回答