J'ai fait une classe simple d'installation:C# Installer classe n'est pas exécuté
[RunInstaller(true)]
public class MyCustumAction : Installer
{
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
string value = Context.Parameters["targetdir"];
throw new Exception("Contact?? " + value);
WriteLog(value);
}
private void WriteLog(string message)
{
using(FileStream f = File.Create(@"C:\ik ben nieuw.txt"))
{
using (StreamWriter w = new StreamWriter(f))
{
w.WriteLine("Dag van installatie: " + DateTime.Now.ToString());
w.WriteLine(message);
}
}
}
}
Dans mon projet d'installation, je l'ai fait ce qui suit:
- sortie Ajouter projet - sortie primaire de mon assemblée
- Ajouter une action personnalisée dans le répertoire d'installation (Actions affichage personnalisé)
- Set CustumActionData à '/ targetdir = "[TARGETDIR] \"'
- Créer mon assembly et générer le projet d'installation
Lors de l'installation, l'exception n'est pas générée. Pourquoi pas? Il semble que ma classe ne soit pas invoquée. Qu'est-ce que je fais mal ici?
MISE À JOUR
Lorsque je crée un projet séparé avec seulement la classe d'installateur et ajouter ce projet à mon Ontario ouput et définir l'action de custum correctement, je reçois l'exception!
Maintenant, je me demande pourquoi ce même fichier ne soit invoqué pas dans mon propre (WinForms) Assemblée ..
Juste une note de côté: Vous devriez vraiment utiliser l'aide de vos ressources jetables au lieu d'appeler Dispose comme ça. –
Thnx pour le conseil. J'ai modifié mon code. – Martijn
Même chose avec 'FileStream', s'il vous plait. ' –