Pergunta

Estou procurando algum código de exemplo c # ou uma ferramenta que possa analisar o arquivo .vdproj (Projeto de instalação e implantação do Visual 2010 Studio).

Foi útil?

Solução

Sugira usar C# e LINQ para analisar este arquivo.Vamos com esta amostra vdproj.Infelizmente não é baseado em XML, mas parece semelhante ao JSON, mas não exatamente.

alt text

Sugira iterar pelas linhas.Determine onde você está com base no número de guias vistas e no número da linha do título da seção você deseja analisar.

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

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

Meu código de exemplo é muito grande para ser colado aqui, então veja o código em http://pastebin.com/DAiTCUtD

A complexidade vai até a quantidade de dados que você precisa extrair do arquivo.

Espero que isto ajude.Parece que você estava procurando uma ferramenta pré-construída, mas talvez este código o ajude a analisar arquivos .vdproj.

Outras dicas

Eu escrevi um aplicativo de console simples que converte um arquivo VDProj de / para uma estrutura XML.Isso tornou muito mais simples fazer coisas como definir o ícone Adicionar / Remover Programas em nosso processo de construção.

https://github.com/dump247/vdprojectxml

tem algo aqui .Espero que este seja

Upd: d'Oh!Tem um monte de ferramentas como vcprojectbindingpharser.cs e vbprojectbindingpharser.cs e nada para .vdproj.Eu não sei, provavelmente vou precisar construir meu próprio analisador.

ahhh (fortemente suspirando) só queria economizar algum tempo.

InstallShield pode converter VDProj ao ISM.Que torna um banco de dados MSI que poderia ser consultado ou escurecido para o Wix.

$_ = join('', <>);

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

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

print "{$_}";

^-- este trecho Perl converte [meu] vdproj em json.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top