Comment faire pour désinstaller avec msiexec à l'aide de l'id de produit guid sans .msi fichier présent

Je suis en train d'automatiser la désinstallation de paquets créés à l'aide de WiX pour les fins de la modification du logiciel installé pile & configuration sans la remise en service d'un ensemble de l'OS. Finalement je vais utiliser de scripts powershell pour ce faire, mais pour le moment je n'arrive pas à obtenir mon paquet de test pour désinstaller de manière interactive avec cmd.

Si je lance:

msiexec /x '{A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8}'

msiexec /x A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8

J'obtiens:

"Le package d'installation n'a pas pu être ouvert. Vérifiez que le package
existe et que vous pouvez accéder, ou contactez le fournisseur de l'application
pour vérifier que c'est un Package Windows Installer valide."

Si je lance:
msiexec /x {A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8}

J'obtiens:

"Cette action est uniquement valable pour les produits qui sont actuellement installés"

J'ai regardé le programme d'installation de windows guide, le WiX documentation, msiexec documentation et utilisé orca pour aller sur la .msi moi, mais je n'ai pas vraiment trouvé quelque chose qui donne une image claire de la façon dont une désinstallation est traitée. Est le .msi fichier requis et si non, alors pourquoi ne programme d'installation de windows semblent penser que c'est lors d'une GUID?

Le WiX code pour le .programme d'installation msi est:

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='htp://schemas.microsoft.com/wix/2006/wi' >
<!--DO NOT COPY /PASTE THE PRODUCT ID GUID BELOW TO YOUR OWN WIX SOURCE -->
<Product Id='A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8' Language='2057' 
Manufacturer='COMPANYNAME IT-Operations' 
Name='COMPANYNAMEServerListener' Version='1.0.0' 
UpgradeCode='PUT-GUID-HERE'>
<Package Id='*' Manufacturer='COMPANYNAME IT-Operations' Compressed='yes' />
<Media Id='1' Cabinet='COMPANYNAMEServerListener.cab' EmbedCab='yes' />
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='COMPANYNAME' Name='COMPANYNAME'>
<Directory Id='INSTALLDIR' Name='COMPANYNAMEServerListener'>
<Component Id='MainExecutable' Guid='*' >
<File Id='COMPANYNAMEServerListener.exe' 
Source='COMPANYNAMEServerListener.exe' Vital='yes' 
KeyPath='yes' />
<ServiceInstall 
Id='COMPANYNAMEServerListenerInstall'
DisplayName='COMPANYNAMEServerListener'
Description='Accepts and discards TCP connections on port 28028 to indicate that this server is alive and ready to be controlled'
Name='COMPANYNAMEServerListener'
Account='NT AUTHORITY\LocalService'
ErrorControl='normal'
Start='auto'
Type='ownProcess'
Vital='yes'           
>
<ServiceDependency Id='tcpip'/>
</ServiceInstall>
<ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="COMPANYNAMEServerListener" Wait="yes" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
<Feature Id='Complete' Level='1' >
<ComponentRef Id='MainExecutable' />
</Feature>
<CustomTable Id ="COMPANYNAMEMetadata">
<Column Id="Property" Type="string" Category="Identifier" PrimaryKey="yes"/>
<Column Id="Value" Type="string"/>
<Row>
<Data Column="Property">InstallString</Data>
<Data Column="Value">/qn</Data>
</Row>
</CustomTable>
</Product>
</Wix>
  • Vous êtes à 100% de réponses correctes que vous avez à utiliser des accolades lors de la référence à l'Id. Je n'ai pas énormément d'expérience avec WiX, mais j'étais sous l'impression que ce que vous faites est correct. Qu'advient-il si vous ouvrez une invite de commande et tapez rundll32 dfshim CleanOnlineAppCache et essayer de nouveau?
  • Pour une longue liste de façons différentes de faire cette case Désinstaller un fichier MSI à partir de la ligne de commande sans l'aide de msiexec
InformationsquelleAutor snoweagle | 2014-01-31