Pergunta

Para uma ação personalizada, estou configurando o nome para xmlpreprocess.exe (um utilitário codeplex)

e argumentos para: /x: [SettingSFile] /i:"tartargetdir] web.config " /e: [EnvironmentButton] [CustomSettings]> [TargetDir] xmlpreprocess.log

O SettingSFile deve vir de uma página de formulário personalizada que eu adicionei, e o AmbientButton é o valor de um dos meus botões de rádio.

Existe alguma maneira de fazer o redirecionamento funcionar? Não está criando o arquivo .log. Existe alguma outra maneira de ver os resultados da ação personalizada? Como posso confirmar se foi executado? E se eu gostaria de ver quais parâmetros foram enviados para ele?

Atualização 3: - Para mais cenários do que eu tentei, veja aqui:http://xmlpreprocess.codeplex.com/thread/view.aspx?threadid=79454

Obrigado,

Neal

ATUALIZAÇÃO: Acabei de escrever um VBScript rápido para verificar meus parms.

dim fso, oFile 
set fso = Createobject("Scripting.FileSystemObject") 
set oFile = fso.CreateTextFile("VBScriptOut.txt") 

if WScript.Arguments.Count < 2 then 
   oFile.Writeline("Number of arguments was only = " & WScript.Arguments.Count)
else 
   oFile.WriteLine("SETTINGSFILE=" & WScript.Arguments.Item(0))   
   oFile.WriteLine("ENVIRONMENTBUTTON=" & WScript.Arguments.Item(1))
end if 

oFile.close

Nenhum vbscriptout.txt foi criado, então acho que nem sequer foi executado (então meu palpite é que o XMLPreprocess também não está sendo executado).

Incluí o arquivo installVerification.vbs como uma ação personalizada em "Install". Defino a condição = true na janela Propriedades. Defino o CustomActionData para: [SettingSFile] [EnvironmentButton

ATUALIZAÇÃO 2: Eu percebi que agora a condição não deveria ser "verdadeira". Eu em branco ou configuro -o como "não instalado".

Estou recebendo um erro inexplicável no XMLPreprocess e não consigo executar o VBScript. Tentei executá -lo também com cscript64.exe.

Foi útil?

Solução

Somente o prompt de comando (e outras ferramentas ocasionais) usa o símbolo maior do que o que indica redirecionamento de saída. O Windows Installer chama apenas a API Win32 CreateProcess, que não processa esse símbolo. Assim, sua tentativa de registrar os resultados não funcionará. Talvez você possa reescrever seu comando de parecer cmd.exe /c XmlPreprocess.exe /x ... > [TARGETDIR]XmlPreprocess.log (Alguma citação extra pode ser necessária).

Para fins de depuração, geralmente você pode obter muito mais informações, obtendo um log detalhado do processo de instalação. Ele incluirá uma lista de propriedades e de ações personalizadas lançadas e seus códigos de retorno. Eu acho que incluirá até a linha de comando totalmente formatada passada para o aplicativo no seu caso.

Como você diz na atualização 2, observe que uma condição de True Na verdade, significa procurar se uma propriedade do nome True é definido. Se você quer algo que seja sempre verdadeiro, use o valor 1.

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