Je suppose que vous utilisez le VS2008 installateur intégré et non InstallShield ou Wise ou quelque chose comme ça (qui ont tous deux de bien meilleurs moyens).
Vous pouvez créer une classe d'installation qui l'ajoute (voir ci-dessous).
Vous ajoutez ensuite votre classe d'installation en tant que custom action for install and uninstall et ajoutez custom actions data avec le chemin que vous voulez, par exemple pour ajouter le TARGETDIR au chemin ...
/VariableName = « Chemin » /Valeur = "[TARGETDIR] \"
using System;
using System.ComponentModel;
namespace Emv
{
[RunInstaller(true)]
public class Installer : System.Configuration.Install.Installer
{
public Installer()
{
}
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
try
{
var varName = this.Context.Parameters["VariableName"];
var valToAdd = this.Context.Parameters["Value"];
var newVal = String.Empty;
var curVal = Environment.GetEnvironmentVariable(varName);
if (curVal != null && curVal.Contains(valToAdd))
{
return;
}
newVal = (curVal == String.Empty) ? valToAdd
: curVal + ";" + valToAdd;
Environment.SetEnvironmentVariable(varName, newVal,
EnvironmentVariableTarget.Machine);
}
catch (Exception ex)
{
// message box to show error
this.Rollback(stateSaver);
}
}
}
}
Une référence à System.Configuration.Install est nécessaire pour ce code.
Quel package d'installation utilisez-vous? Cela peut constituer un moyen de le faire. –