2010-06-03 3 views
0

J'ai un msi avec une propriété publique CUSTOMERID. C'est le MSI de base. Lorsque le client se connecte pour télécharger le fichier MSI, MSI téléchargé doit avoir le jeu CUSROMERID en fonction de la connexion. Fondamentalement, je veux créer un MSI personnalisé avec la propriété publique définie à partir d'un MSI de base afin que le client puisse le redistribuer à ses utilisateurs. Quelqu'un peut-il aider avec ceci.Créer un fichier MSI à partir d'un fichier MSI de base qui requiert une propriété publique

+0

Vous nous avez dit comment vous pensez que vous voulez implémenter ceci, mais je ne comprends pas très bien ce que vous essayez d'accomplir ici. Il est facile de définir une propriété publique à partir de la ligne de commande, ou d'éditer et de modifier le fichier .msi pour l'inclure avec une transformation (ou directement si vous ne vous souciez pas des signatures numériques). Mais l'appeler un "base" .msi suggère que vous cherchez une sorte de système de templates .msi. Pourriez-vous clarifier le scénario que vous essayez d'activer au lieu de comment vous pensez qu'il devrait être fait? –

+0

Je veux éditer le fichier msi pour stocker la propriété publique en fonction du client qui télécharge le msi. Je ne veux pas faire cela à partir de la ligne de commande car les informations client sont perdues après l'installation. – krk

Répondre

0

Si vous n'en créez que quelques-uns à la main, vous pouvez utiliser quelque chose comme le Orca program from the MSI SDK pour modifier le tableau des propriétés. Si vous voulez programmer l'action de manière à ce qu'elle puisse être effectuée des centaines de fois ou à la volée, en utilisant uniquement les outils du SDK, vous pouvez faire hefty automation tricks (comme créer un patch avec la propriété CUSTOMERID et le fusionner dans le MSI "maître" utilisant MSIDB). (Ou des outils d'emballage commerciaux comme InstallShield et Wise peuvent être scénarisées pour faire ce genre de travail.)


D'autre part, je vois des raisons pour ne vouloir ce faire, et préférant plutôt demander le client pour son numéro d'identification lors de l'installation comme un moyen de dissuasion illégal. (Là encore, cela peut être gênant si l'utilisateur est également invité s'il essaie de faire une réparation ou une auto-guérison plus tard, et il n'a pas les informations de commande d'origine sous la main.) Mais c'est votre choix, de cours!

Questions connexes