小编Xen*_*nan的帖子

由于意外的编码更改,无法加载Visual Studio 2008项目文件

在我们的团队中,我们在Visual Studio 2008中有一个数据库项目,该项目由Team Foundation Server进行源代码管理.每两周左右,在一位同事签入后,项目文件将不会加载到其他开发人员的计算机上.错误消息是:

无法加载项目文件.根级别的数据无效.第1行,第1位.

当我在Notepad ++中查看项目文件时,该文件如下所示:

??<NUL?NULxNULmNULlNUL NULvNULeNULrNULsNULiNULoNULnNUL ...

等等(你可以<?xml version在这里看到)而普通的项目文件看起来像:

<?xml version="1.0" encoding="utf-16"?> ...

所以可能是文件编码有问题.这对我们来说是个问题,因为事实证明不可能再次使文件编码正确.'解决方案'是扔掉项目文件,从源代码控制中获取最后一个知道的工作版本.

根据该文件,编码应为UTF-16.根据Notepad ++,损坏的文件实际上是UTF-8.

我的问题是:

  • 为什么Visual Studio会破坏项目文件的编码,显然是在随机时间和随机机器上?
  • 我们该怎么办来防止这种情况发生?
  • 当它发生时,是否有可能以正确的编码恢复当前文件而不是从源代码控制中提取旧版本?

最后一点:问题在于单个项目文件,所有其他项目文件都不会暴露这个问题.

更新:感谢Jon Skeet的建议,我得到第三个问题的答案.当我用两个字节FF FE替换前九个字节EF BB BF EF BF BD EF BF BD时,项目文件将再次加载.

这仍然是Visual Studio破坏文件的原因.

encoding visual-studio-2008 project-files

7
推荐指数
1
解决办法
5406
查看次数