C#: so konvertieren Sie ein Website-Projekt zu Web-Projekt
UPDATE: All diese Probleme wurde für die Konvertierung einer Website-Anwendung um ein Web-Projekt in Visual Studio. Nachdem ich grub in und fand ich die Lösung, wie ich markiert als Antwort unten.
Grundsätzlich, wenn Sie wollen, zu aktualisieren/verschieben Sie Ihre Website-Projekt zu Web-Projekt werden Sie eine Reihe von Fehlern. Die kurze Anleitung ist in der Antwort unten. Danke Euch allen für die Kommentare und Hilfe.
Alte Frage und Titel unter:
Wie wrap-namespace xx {}, um alle class-Dateien?
Wie würden Sie die wrap-namespace, um alle codebehind-Dateien in ein Webprojekt (oder Projekte)?
namespace MyDomain
{
//regular code here
}
Lange Geschichte kurz zu...
Ich habe die Umwandlung ein Projekt, das ausgelagert in übersee. Über 20.000 Dateien im " web " - Projekt allein für so eine einfache Webseite (schüttelt den Kopf). Geschrieben wurde es in vs2005 mit VB.NET und C# (ja, beide complilations). Es war ursprünglich eine Website Anwendung. Ich konvertiert haben, um eine Web-Anwendung, vor allem, weil der 8.000 "temp" - Versammlungen, die produziert werden, wenn Sie veröffentlichen.
Ok, ich bin der Konvertierung in VS2008. Ich habe alle konvertiert code nach C#. Sieht gut aus. Ich habe brachte über alle besonderen App_Code/VB-und C# - code in separate Baugruppen.
Wenn ich jetzt Versuch, wieder kompiliert werden, bin ich alarmiert, um eine große Anzahl von Fehlern. Ich fixieren Sie diese durch das einwickeln der codebehind-Dateien in einem Namespace, und aktualisieren Sie das usercontrol zu verwenden, den neuen namespace.
Aber... 5000+ Fehler zu gehen... Hilfe!!!
alt-text http://eduncan911.com/blog/thumbnail/4-15-2009.6-00-13.PM.png
Vielleicht gibt es einen anderen Weg? Hier ein Beispiel-Ausschnitt aus dem codehind:
public partial class MyHomepage_MyStuff_MyPosts : SecurePage
{ ... }
Beachten Sie die Klasse name MyHomepage_MyStuff_MyPosts. Dies ist der Pfad zum Speicherort der Datei auf /MyHomepage/MyStuff/MyPosts.aspx.
Der Fehler ist, dass die codebehind-Datei nicht finden können, einen Verweis auf das Steuerelement verwendet. Wie:
ctl_website_rpt.RowCount = _totalCount;
Dies ist ein Steuerelement (Ihre naming convention), der als "ctl_website_rpt" innerhalb der ASPX-Datei. Die aspx-Seite in der Kopfzeile:
<%@ Page Title="My Posts" Language="C#"
MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true"
CodeFile="MyPosts.aspx.cs"
Inherits="MyHomepage_MyStuff_MyPosts" %>
Vielleicht gibt es eine Möglichkeit, ich kann auf dieser Seite an anderer Stelle? Ohne es zu ändern, die auf den Namensraum?
namespace Website.MyHomepage.MyStuff
{
public partial class MyPosts
{ ... }
}
<%@ Page Title="My Posts" Language="C#"
MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true"
CodeFile="MyPosts.aspx.cs"
Inherits="Website.MyHomepage.MyStuff.MyPosts" %>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fyi, ich habe die Lösung gefunden. Es ist einfacher als Sie denken.
Du einfach mit der rechten Maustaste auf Ihr neues Web-Projekt und es gibt die option "Convert to Web Application." Dies hat einige interessante Dinge. Zunächst schafft es [Datei].aspx.designer.cs auto-generated file. Diese losgeworden zu 99% mein Fehler, da war es wegen der codebehind konnte nicht finden, einen Verweis auf das Steuerelement (siehe screenshot in meiner Frage oben).
Diese auch re-schreibt die <%@ Page %> Unabhängigkeitserklärung in Ihre aspx-Datei zu Erben, der code hinter den neuen Namen/namespace.
Alles, was Links war einige assembly-Referenz-Probleme und fertig!
Wie Sie ist:
1) Erstellen Sie ein neues Web-Projekt, kopieren Sie alle Dateien von Ihrem alten Webseite auf das neue Web-Projekt.
2) Lösen Sie alle Referenzen auf Assemblys, die Sie WISSEN müssen.
3) mit der Rechten Maustaste auf die Web-Anwendung und wählen Sie " Convert to Web Application. Eng inspizieren die Fehler-und Warnmeldungen protokollieren. Re-konvertiert wird, sobald Sie Dinge reparieren.
Wenn jede aspx-oder ascx-Dateien müssen nicht ein designer.cs-Datei, dann ist die Konvertierung ist fehlgeschlagen für die Datei. Update der Referenzen, Namespaces, etc. und re-konvertieren.
Tipp #1: Stellen Sie sicher, dass alle Verweise Hinzugefügt, bevor Sie Konvertieren, um Web-Anwendung. Manchmal ist eine Anzahl von Fehlern, die passieren können.
Tipp #2: Auch wenn es aussieht, wie es abgeschlossen ist, suchen Sie nach Fehlern, nach dem konvertieren. Es wird sich zeigen Sie die Dateien, die er nicht in der Lage war, um zu konvertieren, so dass Sie an Ihnen arbeiten müssen.
Tipp #3: Sie können re-konvertieren Sie ein beliebiges Unterverzeichnis oder eine Datei, beliebige Anzahl von Zeiten. Sagen, Sie hatte mehrere Fehler in #2 Sie arbeiten wurden zu beheben, können Sie re-konvertieren, die Datei oder das Verzeichnis mehrere Male, bis Sie es beheben. Re-Konvertierung verletzt die bestehende Anwendung.
Ich kann nicht glauben, eine andere Lösung als das schreiben einer kleinen console-app, mit würde gehen Sie durch alle Dateien und ändern Sie Sie für Sie.