2009-08-17 2 views
1

Ich muss eine XML-Datei aus dem bin-Ordner einer Klassenbibliothek abrufen, die zu meiner ASP.Net-Website gehört. Derzeit, wenn ich das Projekt erstelle, befindet sich die XML-Datei im Ordner bin der Klassenbibliothek, wird aber nicht in den Ordner bin der Website kopiert.Einschließen der XML-Datei in den bin-Ordner der ASP.NET-Website Projekt

Ich habe eine Lösung der Verwendung des Post-Build-Ereignisses gesehen, aber diese sind nur in Web-Anwendungsprojekten, so dass ich das nicht verwenden kann?

Irgendwelche anderen Ideen?

Antwort

0

Es gibt keine elegante/einfache Möglichkeit, dies für Ihre Website-Projekt zu tun (Sie den/bin-Ordner in dem Projekt nicht einmal hinzufügen können, wie Sie konnte mit einem Web-App-Projektvorlage) .

Was ich vorschlagen würde ist, dass, anstatt die .xml in Ihre/bin, würde ich es in einen Ordner/config oder andere geeignete Ordner und Referenz von dort.

+2

Ich würde vorschlagen, es im Ordner "App_Data" zu platzieren. –

+0

Dies ist die einzige Lösung, die ich gefunden habe. Vielen Dank. –

0

ändern Eigenschaft der Datei (f4) zum Ausgabeverzeichnis kopieren = true

tun sollten, wie Sie wollen.

Dan

+0

Funktioniert nicht mit einem Website-Projekt (funktioniert für ein Web-App-Projekt). – JMP

0

Fügen Sie die Datei als eine Ressource zu einem Projekt (Projekteigenschaften „Ressourcen“, klicken Sie auf „Ressource hinzufügen“ und wählen Sie „Datei hinzufügen bestehende ...“.

Jetzt können Sie den Inhalt der Datei zugreifen dies wie:

Properties.Resources.YourResourceName; 

Sie können die Datei mit wenigen Zeilen Code „neu“ Global.asac.cs wäre großartiger Ort für diese sein.

protected void Application_Start(object sender, EventArgs e) 
{ 
    // ... get the bin directory ... 
    if (!System.IO.File.Exists(YourBinDir)) 
    { 
     System.IO.File.AppendAllText(YourBinDir, Properties.Resources.YourResourceName); 
    } 
} 

Aber ich würde Ihnen auch empfehlen Speichern Sie solche Dateien im Ordner App_Data. Ob Sie sie mit dem Rest Ihrer App bereitstellen oder die DLL neu erstellen lassen, wenn sie fehlen, liegt ganz bei Ihnen. :)

Verwandte Themen