2011-09-20 3 views
1

C#, Visual Studio 2010Projet d'installation Visual Studio 2010 [ProductName]

J'ai un projet d'application et un projet d'installation connectés à l'application. Dans la propriété Setup projects, j'ai défini la propriété ProductName sur MyApp.

J'ai deux liens (projet d'installation) dans le dossier Applications, un pour le démarrage du projet et un pour désinstaller

J'utilise la technique de créer un lien de désinstallation dans le dossier applications par à partir de ma demande avec un drapeau et applications, le code produit comme celui-ci --uninstall [ProductCode]

  1. Je ne peux pas utiliser [ProductName] comme nom du lien pour démarrer l'application, pourquoi est-ce? Si c'est le cas, le projet d'installation créera un lien dans le dossier de l'application sous le menu de démarrage avec le nom [ProductName] au lieu de "MyApp". Comment puis-je localiser le "lien de suppression", aujourd'hui je nomme le lien de désinstallation à "Supprimer MyApp"? J'espérais que c'était possible de faire quelque chose comme ça « strings.Remove [ProductName] »

  2. Est-il possible de connecter le projet d'installation avec mon projet MyApp de telle sorte que le projet d'installation obtient le nom de l'application , numéro de version, etc. du projet MyApp à la place. Comme cette propriété Setup ProjectName = MyApp.properties.Application.AssemblyName

/Stefan


Je vois, merci pour votre answear

Pourquoi ne pas vous en utilisant la ligne de commande msiexec.exe

J'utilise t il msiexec, j'invoque dans ma classe d'application App comme ce

  sComLine = CommandLine.CL.get("uninstall"); // Check command line if the --uninstall [ProductCode] is given 
      if (sComLine != null) 
      { 
       string path = Environment.GetFolderPath(Environment.SpecialFolder.System); 
       System.Diagnostics.ProcessStartInfo uninstallProcess = new System.Diagnostics.ProcessStartInfo(path + System.IO.Path.DirectorySeparatorChar + "msiexec.exe", "/x " + sComLine); 
       System.Diagnostics.Process.Start(uninstallProcess); 
       System.Windows.Application.Current.Shutdown(); 
      } 

Répondre

1

J'utilise la technique de créer un lien désinstalleur dans le dossier applications en démarrant mon application avec un drapeau et applications produit code comme ceci --uninstall [ProductCode]

Pourquoi n'utilisez-vous pas la ligne de commande msiexec.exe? Peut-être ce fil va aider:

In a Visual Studio setup project, How do I generate an uninstall script?

Je ne peux pas utiliser [ProductName] comme nom du lien pour démarrer l'application , pourquoi est-ce? Si c'est le cas, le projet d'installation va créer un lien dans le dossier de l'application sous le menu Démarrer avec le nom [ProductName] au lieu de "MyApp".

Les noms de raccourcis ne prennent pas en charge les propriétés du programme d'installation. C'est une limitation dans Windows Installer. Le nom doit donc être une valeur codée en dur.

Comment puis-je localiser le "supprimer le lien"

Ce n'est pas pris en charge par Visual Studio. Cela peut être fait uniquement dans un outil de création d'installation qui offre un support de localisation.

Est-il possible de connecter le projet d'installation avec mon projet MyApp à de telle sorte que le projet d'installation reçoit le nom de l'application, la version numéro, etc. du projet MyApp à la place.

Non, cela n'est pas pris en charge par Visual Studio. En remarque, la version de votre application peut ne pas toujours correspondre à la version de votre package. Il est généralement préférable de les garder séparés.

+0

Je vois, merci pour vos vêtements –