.vdproj парсер хотел - PullRequest
       16

.vdproj парсер хотел

1 голос
/ 21 июля 2010

Я ищу пример кода на c # или инструмент, который мог бы проанализировать файл .vdproj (проект установки и развертывания Visual 2010 Studio).

Ответы [ 5 ]

5 голосов
/ 01 декабря 2010

Я написал простое консольное приложение, которое преобразует файл VDPROJ в / из структуры XML.Это значительно упростило задачу установки значка добавления / удаления программ в процессе сборки.

https://github.com/dump247/VDProjectXml

2 голосов
/ 21 июля 2010

Предложите использовать C # и LINQ для разбора этого файла.Давайте рассмотрим этот образец vdproj .К сожалению, он не основан на XML, а скорее выглядит похоже на JSON , но не совсем.

alt text

Предложите перебирать строки.Определите, где вы находитесь, на основе количества увиденных вкладок и номера строки заголовка раздела , который вы хотите проанализировать.

  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.

0 голосов
/ 10 апреля 2012
$_ = join('', <>);

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

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

print "{$_}";

^ - этот фрагмент perl преобразует [my] vdproj в json.

0 голосов
/ 17 сентября 2010

InstallShield может конвертировать VDPROJ в ISM.Это делает ее базой данных MSI, которую затем можно запросить или затемнить в WiX.

0 голосов
/ 21 июля 2010

Есть что-то здесь .надеюсь, что это все

Upd: D'oh!Он имеет множество инструментов, таких как VCProjectBindingParser.cs и VBProjectBindingParser.cs и ничего для .vdproj.Я не знаю, возможно, мне нужно будет создать свой собственный парсер.

Ааа (тяжело вздыхая) Просто хотел сэкономить время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...