2009-03-18 4 views

Antwort

7

Ich bin diesen Weg schon einmal gegangen und muss den Anwendungspool manuell erstellen oder eine benutzerdefinierte Aktion schreiben, um dies für Sie zu verwalten.

Weiteres zu Grzenio Frage in den Kommentaren unten:

„Können Sie mir einen Tipp geben, wo die Code/Helferklassen zu beginnen, und halten Sie Ihr Projekt ein Web-Setup-Projekt, oder einfach nur benutzen das Standard-Anwendungs-Setup-Projekt? "

Ich habe ein neues Projekt namens InstallHelper zu der Lösung hinzugefügt, die das Setup-Projekt enthält. In diesem Projekt habe ich eine Klasse namens InstallActions erstellt, die sich ableitet von:

System.Configuration.Install.Installer (MSDN).

Es gibt vier Methoden, die Sie in der Basisklasse Installer überschreiben können, damit Sie benutzerdefinierte Aktionen angeben können, abhängig davon, ob Sie sich während der Installation im Install-, Commit-, Uninstall- oder Rollback-Modus befinden.

Ich habe der Benutzeroberfläche des Setup-Projekts auch eine Reihe von Textdialogfeldern hinzugefügt. Eingabe und Status, die von diesen Dialogen erfasst wurden, werden über ein Wörterbuch an Ihre benutzerdefinierte Installationsaktion übergeben. d.h .:

using System.Collections.Specialized; 
using System.ComponentModel; 
using System.Configuration.Install; 
using System.Windows.Forms; 

namespace InstallHelper 
{ 
    [RunInstaller(true)] 
    public partial class PostInstallActions : Installer 
    { 
    public override void Install(IDictionary state) 
    { 
     base.Install(state); 
     // Do my custom install actions 
    } 

    public override void Commit(IDictionary state) 
    { 
     base.Commit(state); 
     // Do my custom commit actions 
    } 

    public override void Uninstall(IDictionary state) 
    { 
     base.Uninstall(state); 
     // Do my custom uninstall actions 
    } 
    public override void Rollback(IDictionary state) 
    { 
     base.Uninstall(state); 
     // Do my custom rollback actions 
    } 
    } 
} 

Um die benutzerdefinierte Aktion zum Setup-Projekt hinzuzufügen, öffnen Sie die Aktionen Benutzerdefinierte Viewer/Editor, und geben Sie die Ausgabe aus dem InstallHelper Projekt.

Das sind die Grundlagen und sollten Sie beginnen. Das Web-Setup-Projekt unterstützt auch benutzerdefinierte Aktionen und zusätzliche Benutzereingabedialogfelder, sodass Sie möglicherweise Ihr vorhandenes Projekt zusätzlich zu einer benutzerdefinierten Aktion erneut verwenden möchten.

+0

Ich benutze benutzerdefinierte Aktionen dazu in .net 2.0 –

+0

Prost für die Antwort. Könnten Sie mir einen Hinweis geben, wo ich anfangen soll, nach den Code-/Hilfsklassen zu suchen? Und behalten Sie Ihr Projekt ein Web-Setup-Projekt, oder verwenden Sie einfach das Standard-Anwendungs-Setup-Projekt? – Grzenio

+0

Ich schaute mir zunächst das Web-Setup-Projekt an, entschied mich dann aber dafür, das Standard-Setup-Projekt zu verwenden, da meine Anforderungen auch die Installation eines Windows-Dienstes und die Erstellung der Website beinhalteten. – Kev

10

Schauen Sie sich diesen Beitrag http://forums.iis.net/t/1061734.aspx, wird es eine grobe Vorstellung über Microsoft.Web.Administration dll geben.

Ich habe nicht das ganze Konzept studiert, aber ich habe herausgefunden, wie man neue Pool erstellen und wie mit neuer Website/virtuellem Verzeichnis anhängen.

Erstellen von Anwendungs ​​Pool

Microsoft.Web.Administration.ServerManager manager = new Microsoft.Web.Administration.ServerManager(); 
manager.ApplicationPools.Add("NewApplicationPool"); 
manager.CommitChanges(); 

Anbringen mit vorhandenen virtuellen Verzeichnis

Microsoft.Web.Administration.ServerManager manager = new Microsoft.Web.Administration.ServerManager(); 
Site defaultSite = manager.Sites["Default Web Site"]; 

// defaultSite.Applications will give you the list of 'this' web site reference and all 
// virtual directories inside it -- 0 index is web site itself. 

Microsoft.Web.Administration.Application oVDir = defaultSite.Applications["/myApp"];    
oVDir.ApplicationPoolName = "NewApplicationPool"; 
manager.CommitChanges(); 

Auf diese Weise können Anwendungspool auf Ihrer neuen Webseite zuweisen können die benutzerdefinierten Aktionen verwenden, die Methode der Installer-Klasse begehen überschrieben.

Wenn Sie immer noch Schwierigkeiten haben, lassen Sie es mich wissen und ich werde versuchen, den Code zu senden.

Mit freundlichen Grüßen Faiyaz faiyazkhan @ hotmail.com

+2

Verwendung von Microsoft.Web.Administration ist nur auf einem Windows Server 2008-Computer (d. H. IIS7) möglich. Für die programmgesteuerte Verwaltung von IIS 6.0 auf Windows Server 2003-Computern können Sie stattdessen WMI versuchen: http://msdn.microsoft.com/en-us/library/ms525309%28v=VS.90%29.aspx. Sie können auch versuchen, System.DirectoryServices: http://msdn.microsoft.com/en-us/library/ms525791%28v=VS.90%29.aspx – rohancragg

Verwandte Themen