Étant donné un programme d'installation généré avec un projet d'installation VS2010, je voudrais échanger une DLL .NET avec une autre sans changer le nom.Comment faire pour modifier le contenu d'un fichier inclus dans un * .msi avec VBScript
Je change déjà le fichier msi
selon this question, échange le contenu d'une entrée dans la table « binaire ».
J'ai localisé le fichier en question en utilisant Orca. Il réside dans le seul fichier CAB. J'ai localisé ce fichier CAB dans le tableau "Media". Je ne sais pas comment changer ce fichier CAB (API) et je suppose que je devrais aussi changer certaines informations dans la base de données MSI (l'enregistrement "ProcessorArchitecture" pour l'assemblage dans la table "MsiAssemblyName").
Raison: Je fais un installateur pour un plugin Autodesk Revit 2011. Ceux-ci sont enregistrés en utilisant un ensemble RevitAddinUtility.dll
qui doit être fourni avec l'installateur. Cet assemblage existe en deux versions, une pour les installations 32 bits et l'autre pour les installations 64 bits. J'ai besoin d'échanger la version correcte lors de la création de l'installateur, pour éviter d'écrire plus d'un installateur.
Désolé, vous venez a cassé l'installation de plusieurs façons. Pour celui que vous avez changé le nom de l'assembly sans modifier le contenu réel (qui va casser un assembly .NET) et vous avez également créé une violation de la règle de composant en changeant le keypath sans modifier le ComponentID. –
En fait, j'ai changé le nom de l'assembly * avant * de l'ajouter à l'installation puis de le * re-changer * pour le vrai nom par la suite. Pourriez-vous fournir un pointeur sur "keypath"? J'avoue piquer dans le noir avec un moyen de court bâton ici ... –