我确定MSDN上必须有一些文档,但我找不到它。它看起来像JSON的一些子集/变体。真的,这个问题源于一直困扰我的事情:8:
和3:
的意思是什么?这是某种版本号吗?也许打字方案?我见过的每个VDPROJ摘录都充满了这些“八冒号”和“三冒号”的前缀,但这不是搜索引擎真正有用的问题。
"DeployProject"
{
"VSVersion" = "3:800"
"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
"IsWebType" = "8:FALSE"
"ProjectName" = "8:ProjectNameRedacted"
"LanguageId" = "3:1033"
"CodePage" = "3:1252"
"UILanguageId" = "3:1033"
"SccProjectName" = "8:"
"SccLocalPath" = "8:"
"SccAuxPath" = "8:"
"SccProvider" = "8:"
"Hierarchy"
{
"Entry"
{
"MsmKey" = "8:_02F97BB7BD104F1AAA1C97C854D5DC99"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
...
如果有人只想指责我可怜的Google-fu,那也没关系。
答案 0 :(得分:2)
作为@R。 Matveev指出,前缀数字可能表示存储在属性中的数据类型。在将文件反序列化为对象结构时,这将非常有用。
我怀疑Visual Studio用来读取/写入文件的源代码是开源的,因此难怪网络搜索没有返回任何内容。
我能找到的最好的是OLE自动化数据类型的这个页面,它可能不是实际的常量,但数据类型似乎与* .vdproj文件中的值匹配。
typedef enum tagVARENUM
{
VT_EMPTY = 0x0000,
VT_NULL = 0x0001,
VT_I2 = 0x0002,
VT_I4 = 0x0003, // 4-byte signed integer
VT_R4 = 0x0004,
VT_R8 = 0x0005,
VT_CY = 0x0006,
VT_DATE = 0x0007,
VT_BSTR = 0x0008, // BSTR (string data)
VT_DISPATCH = 0x0009,
VT_ERROR = 0x000A,
VT_BOOL = 0x000B, // Boolean value
VT_VARIANT = 0x000C,
VT_UNKNOWN = 0x000D
...
} VARENUM;