在我们的团队中,我们在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.
我的问题是:
最后一点:问题在于单个项目文件,所有其他项目文件都不会暴露这个问题.
更新:感谢Jon Skeet的建议,我得到第三个问题的答案.当我用两个字节FF FE替换前九个字节EF BB BF EF BF BD EF BF BD时,项目文件将再次加载.
这仍然是Visual Studio破坏文件的原因.