2

我正在寻找一些可以解析 .vdproj 文件的 c# 示例代码或工具(Visual 2010 Studio 设置和部署项目)。

4

5 回答 5

6

我编写了一个简单的控制台应用程序,它将 VDPROJ 文件与 XML 结构相互转换。这使得在构建过程中设置添加/删除程序图标等操作变得更加简单。

https://github.com/dump247/VDProjectXml

于 2010-12-01T00:09:28.750 回答
2

建议使用 C# 和 LINQ 来解析这个文件。让我们使用这个 vdproj 示例。不幸的是,它不是基于 XML,而是看起来类似于 JSON,但不完全一样。

替代文字

建议遍历线条。根据看到的选项卡数量以及要解析的部分标题的行号确定您所在的位置。

  string[] allLines = System.IO.File.ReadAllLines(@"C:\foo.vdproj");

  // iterate, and determine where the Configuration heading is....
  if (line == "\t\"Configurations\"")

我的示例代码太大,无法在此处粘贴,因此请参阅http://pastebin.com/DAiTCUtD上的代码

复杂性取决于您需要从文件中提取多少数据。

希望这可以帮助。听起来您正在寻找一个预构建的工具,但也许这段代码可以让您开始解析 .vdproj 文件。

于 2010-07-21T17:46:25.553 回答
0

这里有东西。希望就是这样

更新:哦!它有一堆工具,如 VCProjectBindingParser.cs 和 VBProjectBindingParser.cs,而 .vdproj 没有。我不知道,可能我需要构建自己的解析器。

啊哈(重重地叹了口气)只是想节省一些时间。

于 2010-07-21T16:10:28.163 回答
0

InstallShield 可以将 VDPROJ 转换为 ISM。这使它成为一个 MSI 数据库,然后可以在 WiX 中查询或隐藏。

于 2010-09-16T22:33:24.840 回答
0
$_ = join('', <>);

s/[=](.+)/:$1,/g;
s/[{]/: {/sg;
s/}/},/g;

s/[,](?:\s+)?[}]/}/sg;
s/[,](?:\s+)?$//s;

print "{$_}";

^-- 这个 perl 片段将 [my] vdproj 转换为 json。

于 2012-04-09T22:15:30.223 回答