Je suis nouveau sur Wix et j'ai rencontré un problème que je ne suis évidemment pas capable de résoudre seul, donc toute aide sera très appréciée. Arrière-plan: Je représente un fournisseur de logiciels qui conçoit une suite complète d'applications SOA à déployer dans les grandes entreprises. Notre architecture se compose de plusieurs couches qui peuvent être installées/mises à niveau indépendamment, je construis donc plusieurs installateurs, à partir de zéro (comme: plateforme, composants de base, couche de service, couche de gestion, couche d'application, etc.).Wix - ComPlusAssembly - Impossible d'installer la bibliothèque de type
versions du logiciel:
-Wix 3.5.1309.0 (wix.dll)
- Visual Studio 2008, .Net 3.5
- Construire OS: Windows 2008 R2 Standard 64 bits
- Déploiement: Windows 2008 Standard 32 bits
Mon problème concerne l'installation des assemblys .Net dans les applications COM +. Je continue à obtenir l'erreur "Impossible d'installer la bibliothèque de types". J'ai lu toute la documentation que je peux trouver, et je google'ing depuis plusieurs jours maintenant. Je trouve plusieurs articles sur le sujet, mais je ne suis toujours pas en mesure de résoudre le problème.
Pour isoler le problème, j'ai extrait le problème dans un programme d'installation distinct. D'abord, je lance l'installateur principal:
1. Installe tous les assemblages dans le GAC, y compris celui qui doit être installé dans COM +.
2. Créez des utilisateurs et des groupes locaux.
3. Créer l'application COM + cible, y compris les rôles, etc.
4. Installe l'ensemble cible, et le typelib compagnon, dans un dossier (pour éliminer les problèmes de consultation GAC)
Ce programme d'installation, je peux installer/réparation/désinstaller, tout fonctionne bien.
Ensuite, je lance le programme d'installation minimum ne contenant que la question, qui cherche à:
1. Installez l'ensemble dans une COM + application existante (serveur), faisant référence à la .dll pré-installé et .tlb.
L'installation échoue et le journal est l'affiche:
MSI (s) (AC:64) [19:16:01:127]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI1BAB.tmp, Entrypoint: ComPlusInstallExecute
ComPlusInstallExecute: ExceptionInfo: Code='0', Source='System.EnterpriseServices', Description='Could not install type library 'c:\Program Files\MyManufacturer\ComPlus\WDA.ServiceProviders.Update.11.tlb' into application 'WDA.ServiceProviders.Update.11'.', HelpFile='', HelpContext='0'
ComPlusInstallExecute: Error 0x80020009: Failed to invoke RegistrationHelper.InstallAssembly() method
ComPlusInstallExecute: Error 0x80020009: Failed to register .NET assembly
ComPlusInstallExecute: Error 0x80020009: Failed to register assembly, key: MyAssembly
ComPlusInstallExecute: Error 0x80020009: Failed to register assemblies
Action ended 19:16:02: InstallFinalize. Return value 3.
Je remarque aussi que le rollback supprime l'application COM +, même si elle n'a pas été créé par l'installateur.
Je peux installer l'assembly manuellement, à l'aide du Gestionnaire de serveur, à partir du même fichier physique que celui référencé par le programme d'installation. Après avoir retiré manuellement le composant de l'application COM +, le programme d'installation fonctionne!
En outre, pourquoi dois-je fournir une typelib en premier lieu? EnterpriseServices.RegistrationHelper génère quand même la typelib à la volée.
Ceci est le programme d'installation de test minimum qui échoue:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:complus="http://schemas.microsoft.com/wix/ComPlusExtension"
>
<Product Id="48EDB258-BD84-47EF-94A2-B4950EE48139"
UpgradeCode="F29B8EBD-DFD1-4B7E-96FF-86842CAAE4A4"
Name="ComPlusInstalls"
Language="1033"
Version="1.0.0"
Manufacturer="MyManufacturer">
<Package Id="ABA41719-BC28-4A57-BA9A-58F4F3B2194F" InstallerVersion="200" Compressed="yes" />
<Media Id="1" Cabinet="WixTest.cab" EmbedCab="yes" />
<complus:ComPlusApplication Id="MyApplication" ApplicationId="1FCF220A-A1FE-44FE-BE91-B37341BA6D4A" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="MyManufacturer" Name="MyManufacturer">
<Directory Id="INSTALLLOCATION" Name="ComPlus">
<Component Id="MyComponent" Guid="6D46A007-6669-487B-BAA0-DFA7314C141D" KeyPath="yes">
<complus:ComPlusAssembly Id="MyAssembly" Type=".net" Application="MyApplication"
RegisterInCommit="no" DllPathFromGAC="no"
DllPath="[INSTALLLOCATION]WDA.ServiceProviders.Update.11.dll"
TlbPath="[INSTALLLOCATION]WDA.ServiceProviders.Update.11.tlb"/>
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
<Feature Id="MainFeature" Title="WixTest" Level="1" Absent="disallow" InstallDefault="local">
<ComponentRef Id="MyComponent" />
</Feature>
</Product>
</Wix>
Cheers,
-Nils
Avez-vous trouvé une solution? – sventevit