Não é possível executar o MSI a partir do caminho da rede usando Process.Start - É possível executar um msi a partir do compartilhamento de rede?

2

Eu gostaria de iniciar um MSI que vive em compartilhamento de rede, no entanto, a caixa de diálogo msiexec 'help' é exibida (o que indica que algo está errado com as informações de início do processo):

string testPath1 = @"\mynetwork.share.com\dev\builds 1.0\product.msi";  //DOESN'T WORK
string testPath2 = @"C:\users\username\desktop\product.msi";         //DOES WORK

ProcessStartInfo startMsiexecProcess = new ProcessStartInfo(@"C:\windows\system32\msiexec.exe");
startMsiexecProcess.Arguments = @"/i " + testPath1;
Process.Start(startMsiexecProcess);

Eu tentei variações no testPath1 - isto é, não usando nome totalmente qualificado e outros compartilhamentos de rede. Eu tentei ajustar o espaçamento no Arguments, também.

Por fim, se eu alterar o caminho 'local' para um formato completo como este:

string testPath2 = @"\mylocalmachine.domain.com\c$\users\username\desktop\product.msi";

.. funciona corretamente. Então, isso me dá a certeza de que provavelmente não é uma string mal formada causando o problema quando tento executar isso no compartilhamento de rede.

É possível executar um msi a partir do compartilhamento de rede?

    
por JohnZaj 18.03.2013 / 05:05

1 resposta

0

É o espaço no meu caminho: "builds 1.0". Process.Start pode estar interpretando isso como um delimitador de argumentos.

Para resolver, adicionei aspas ao redor do caminho para o MSI sendo executado, por exemplo:

"\"" + testPath1 + "\""

este post levou-me à solução: how-to-handle-values-with-spaces-in-process-start-in-c-sharp

    
por 23.03.2013 / 14:53