J'ai créé une tâche pour MSBuild à utiliser par les développeurs et je voudrais créer un programme d'installation pour installer la tâche et le fichier .targets associé dans le dossier des extensions MSBuild dans Program Files (généralement C:/Program Files/MSBuild sur XP 32 bits). Pour faire cela correctement, je voudrais demander au système l'emplacement de ce dossier au moment de l'installation - y a-t-il une clé de registre qui fournit cette information ou une autre propriété de l'installateur? J'ai l'intention d'utiliser WiX pour l'installation.Installation d'une extension MSBuild
Répondre
Nous exactement cela (et plus :)
Créer un fichier WXi avec quelque chose comme:
<!-- Product name as you want it to appear in Add/Remove Programs-->
<?if $(var.Platform) = x64 ?>
<!-- Product name as you want it to appear in Add/Remove Programs-->
<?define ProductName = "Custom MSBuild Tasks (64 bit)" ?>
<?define Win64 = "yes" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else ?>
<?define ProductName = "Custom MSBuild Tasks" ?>
<?define Win64 = "no" ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?endif ?>
<!-- Directory name used under MSBuild -->
<?define InstallName = "CustomTasks" ?>
Ensuite, lorsque vous devez définir vos composants:
<Fragment Id="ComponentsFragment">
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)">
<Directory Id="MSBuildFolder" Name="MSBuild">
<Directory Id="INSTALLLOCATION" Name="$(var.InstallName)">
... Your custom .Targets and tasks go here
Wix lui-même a une tâche MSBuild donc je pense qu'il est préférable de voir comment ils l'ont fait, la source de relink est Toolset.wxs (Google Code Search).
Regardez la partie où ils ont défini le MSBuild Dossier:
<DirectoryRef Id="ProgramFilesFolder">
<Directory Id="Dir_MSBuild" Name="MSBuild">
<Directory Id="Dir_MSBuildMS" Name="Microsoft">
<Directory Id="Dir_MSBuildMSWix" Name="WiX">
<Directory Id="Dir_MSBuildMSWix35" Name="v3.5">
<Component Id="WixMSBuildBinaries35"
Guid="2CB1EA5F-2542-4AFF-A05B-FAF576265F89"
Win64="no">
<File Source="WixTasks.dll" Checksum="yes"
KeyPath="yes" Vital="yes" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
</DirectoryRef>
Cela installera la tâche Wix MsBuild (WixTasks.dll) sous \ Program Files \ MSBuild \ Microsoft \ Wix
Si vous utilisez des fenêtres 64 bits, l'installation se fera dans le mauvais dossier. Ils doivent avoir un autre code qui gère les fichiers programme ou les fichiers programme (x86). En fait, je viens de creuser leur code, il semble? comme s'ils comprenaient des composants x86 et x64, et écrasaient simplement les composants x86 avec les composants x64 si c'était une plate-forme x64. Intéressant :) – si618
- 1. installation php et postgreSQL
- 2. Construction et installation d'une bibliothèque de packages R avec une extension jnilib
- 3. MSBuild récursive avec copie% (ConfigurationToBuild.PlatformToBuild)
- 4. Erreur installation newgem sur linux
- 5. Ecraser des propriétés avec MSBuild
- 6. Ajax extension extension modale - contrôle nesting
- 7. Installation de Starling sous Windows
- 8. Extension DataGrid
- 9. extension dotproject
- 10. msbuild: lorsque le projet de construction est Microsoft.VisualBasic.Targets 'importé' par msbuild?
- 11. Installation et configuration sans empattement avec DJango
- 12. Comment appeler le même fichier projet cible avec des paramètres différents de l'intérieur msbuild deux fois msbuild se
- 13. Installation mécaniser petit bijou sous Mac OS X 10.4.11 donne « n'a pas pu construire gemme extension native »
- 14. Installation personnalisée de Firebird
- 15. XML/Parser.php installation
- 16. Emacs - installation sous Vista
- 17. Installation d'une application ASP.NET
- 18. Installation du module python
- 19. Installation de l'application chaînée
- 20. Installation de Xampp?
- 21. Visual Studio 2008 Installation
- 22. has_many_polymorphs post-installation numéro
- 23. Installation d'emacs-rails
- 24. installation du framework Zend
- 25. Installation automatique activeX
- 26. installation des bibliothèques python
- 27. Privatisation d'une installation BlogEngine.Net
- 28. WAMP installation facile d'installation?
- 29. Installation RPM Dépendances
- 30. MSBuild XmlMassUpdate Tâche
Merci. Comme je le soupçonnais, le chemin MSBuild est codé en dur dans le programme d'installation. J'aime le code pour basculer entre 64 et 32 bits. Cependant, nous n'avons actuellement aucun matériel 64 bits à tester, donc je ne suis pas sûr que je devrais même essayer de le supporter quand je ne peux pas valider ce que j'écris. –
Vrai :) Aussi, si vous voulez intégrer votre schéma de tâches dans Visual Studio (2005 & 2008), j'ai le code WiX pour cela, posez simplement une autre question et postez la réponse. – si618