Kurz gesagt, aufgrund einiger Probleme mit der Architektur und der Tatsache, dass bereits einige ASPX-Dateien in einer Klassenbibliothek abgelegt wurden, möchte ich die Änderung einfach abschließen und eine Klassenbibliothek in eine Webanwendung konvertieren. Dies verwendet Visual Studio 2010 und .NET 4.0. Gibt es eine einfache Möglichkeit, dies zu tun? Vielen Dank!
EDIT: Ich hatte die Hoffnung auf eine bessere Methode als die Neuerstellung des Projekts. Ich hatte zu viele Probleme mit fehlerhaften Referenzen, als ich versuchte, nur ein neues Projekt zu erstellen, einschließlich eines, das ich anscheinend nie reparieren konnte.
Erstellen Sie ein neues Webanwendungsprojekt in Ihrer Lösung, und ziehen Sie alle Dateien aus der Klassenbibliothek in das neue Webanwendungsprojekt.
Ich habe dies heute in Visual Studio 2005 von Hand gemacht, weil es einfacher und schneller schien als zuvor. Ich habe gerade eine funktionierende .csproj-Datei für Webanwendungen mit meiner Klassenbibliothek verglichen, um die relevanten Unterschiede festzustellen. Darauf basierend habe ich folgende Änderungen vorgenommen. Beachten Sie, dass es für andere Versionen oder Ihr individuelles Projekt anders sein kann.
1) Gleich nach dem <ProjectGuid>
-Element oben habe ich hinzugefügt
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
2) Ich habe <ProjectType>Local</ProjectType>
entfernt
3) Am Ende der Datei, direkt vor dem schließenden </Project>
, habe ich hinzugefügt
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\WebApplications\Microsoft.WebApplication.targets" />
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>False</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>3291</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>
</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
Es wurde bereits in den Kommentaren erwähnt, aber irgendwie ist es leicht zu übersehen (zumindest habe ich es übersehen). Wenn Sie die Lösung von Brad angewendet haben, in Ihrem Projekt jedoch noch keine Option zum Hinzufügen von Bereichen, Controllern und Ansichten vorhanden ist, müssen Sie dennoch eine MVC-Projekt-GUID {E3E379DF-F4C6-4180-9B81-6769533ABE47}
hinzufügen.
Die ProjectTypeGuids
-Zeile sollte jetzt so aussehen:
<ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
Wie von JamesQMurphy erwähnt, funktioniert {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
nicht in VB -Projekten. Das liegt daran, dass es sich um ein C # -Projekt handelt. Für VB -Projekt muss daher eine VB -Projekt-Guid verwendet werden. Diese Guid ist {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
.
Hier ist eine Liste einiger bekannter Projektleitfäden (entnommen aus dieser Seite ):
P.S. Falls Sie sich fragen, ist die Liste offenbar gemeinfrei.
Wäre es am einfachsten, einfach ein neues Webprojekt zu erstellen und dann die Klassendateien und * .aspx-Dateien in das neue Webprojekt zu kopieren?