2011-06-29 2 views

Répondre

10

Cela est dû au fait que l'article Microsoft est un peu trompeur. Ce que cet article explique est comment créer un programme d'installation personnalisé application. Il ne décrit pas comment modifier votre application afin qu'elle dispose d'une boîte de dialogue d'installation personnalisée, au lieu de celle standard qui fait partie du système.

Pour créer un programme d'installation client, créez une application distincte similaire à celle décrite dans le code dans l'article MSDN. Vous souhaiterez ajouter à la méthode Main de cette application le code à l'étape 5, cependant, modifiez le code pour rechercher le manifeste d'application à partir de votre point d'installation. Compilez l'application et distribuez-la à vos utilisateurs comme bon vous semble.

Bien que vous deviez gérer la distribution d'une application d'installation initiale, vous pouvez implémenter ce processus dans votre application pour les mises à jour. Dans ce cas, suivez les instructions de l'article. Comme je l'ai mentionné précédemment, vous voudrez vérifier vos mises à jour quand et comme vous le désirez. Une fois qu'une mise à jour est nécessaire, votre application peut appeler le code à l'étape 5 à partir de votre application ClickOnce.

+0

Merci. C'est vraiment trompeur. –

6

J'ai eu une conversation entière avec le gars ClickOnce chez Microsoft à ce sujet. Pour être honnête, j'ai été irrité parce qu'ils ne donnent pas vraiment assez de conseils à ce sujet. Il a dit ceci: Vous devez créer un fichier exe, mais vous devez mettre en place des contrôles pour vous assurer que le .NET Framework est installé avant l'exécution de l'exe. Alors créez votre propre exécutable et exécutez-le en tant que setup.exe - c'est là que se trouve le code personnalisé pour l'installation de l'application.

Je pense finalement qu'il a signifié que vous devez écrire une sorte de bootstrapper dans le code non.NET (comme C) qui vérifie le .NET Framework et l'installe si nécessaire. Ensuite, il déclencherait un autre exe qui est le code managé qui a vos appels à l'InPlaceHostingManager et l'interface utilisateur personnalisée en elle.

+1

Je vois, bien peut-être que la solution est d'utiliser ClickOnce pour donner à mes clients une application de configuration (tout comme google utilise ClickOnce pour distribuer l'installation de Chrome (pas Chrome lui-même) pour utiliser InPlaceHostingManager. –