2009-03-10 6 views
2

Je crée un package d'installation Windows personnalisé pour mon application .NET 3.5 SP1 WPF. Je veux qu'il détecte quelle version (le cas échéant) du framework .NET est installé sur l'ordinateur du client, puis le télécharge automatiquement depuis Microsoft s'ils ne l'ont pas.Comment communiquer avec le programme d'amorçage .NET 3.5 SP1

Maintenant, j'ai lu à propos du programme d'amorçage .NET et je l'ai même vu en action dans un programme d'installation de ClickOnce. Il semble faire exactement ce dont j'ai besoin.

Le problème est, je ne veux pas utiliser ClickOnce. Je suis partial à NSIS. Essentiellement, je cherche de la documentation sur la façon de communiquer ou d'intégrer le bootstrappeur d'une manière ou d'une autre afin de pouvoir l'utiliser dans mon propre programme d'installation. Mais je ne trouve pas grand-chose.

Toute aide serait grandement appréciée.

Merci, Steve

Répondre

3

Vous voulez quelque chose like this, sauf quand je l'ai utilisé ce qu'il détecte que jusqu'à 2 correctement. Je suis à la maison maintenant mais quand j'arriverai au travail je posterai mon hack de ce code pour le faire fonctionner jusqu'à 3.5 SP1. Ils ont changé un peu l'emplacement du numéro de version.

Edit: Posté ma version on pastebin

+0

Awesome. Cela fonctionne très bien. J'ai eu un peu peur de le faire de cette façon en raison de l'imprévisibilité de la détection .NET et des versions futures. Mais je suppose que j'aborderai cela quand et si cela devient un problème. –

+0

Hey ma douce! Ouais j'ai dû fouiller dans le registre pour m'assurer qu'il fonctionnait pour .NET 3. Je suis sûr qu'il existe une méthode certifiée par Microsoft pour le faire, mais mes tests sur Windows Server 08 et XP SP2 ont fonctionné avec cela. Bonne chance! –

0

je ne pense pas que vous pouvez réellement communiquer avec un programme d'amorçage. Ma compréhension est que vous définissez les prérequis, et il va les installer si nécessaire. J'ai toujours utilisé MSbuild GenerateBootstrapper pour ce faire.

<ItemGroup> 
    <BootstrapperFile Include="Microsoft.Net.Framework.2.0"> 
     <!--This requires the either the Platform SDK or VS.Net to be installed--> 
     <ProductName>Microsoft .NET Framework 2.0</ProductName> 
    </BootstrapperFile> 
</ItemGroup> 

    <!--Create the bootstrapper--> 
    <GenerateBootstrapper 
     ApplicationName="MyApp" 
     ApplicationFile="MyApp.msi" 
     ApplicationUrl="$(ApplicationUrl)" 
     BootstrapperItems="@(BootstrapperFile)" 
     Culture="en" 
     CopyComponents="True" 

     ComponentsLocation="Relative" 
     OutputPath="$(InstallationPath)\"/> 
+0

je ne pouvais pas obtenir ce travail, bien qu'il ne semble prometteur. Je devrai peut-être revoir cela plus tard avec d'autres projets. Je vous remercie. –

+0

qu'est-ce qui n'a pas fonctionné? C'est la manière de facto de démarrer le runtime pour une application .Net dans Windows –

Questions connexes