it-swarm.com.de

Wie konvertiere ich ein Klassenbibliotheksprojekt in ein Webanwendungsprojekt?

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.

41
tekiegreg

Erstellen Sie ein neues Webanwendungsprojekt in Ihrer Lösung, und ziehen Sie alle Dateien aus der Klassenbibliothek in das neue Webanwendungsprojekt.

5
sv88erik

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>
87
Brad

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 ):

  • ASP.NET MVC 1.0 {603C0E0B-DB56-11DC-BE95-000D561079B0}
  • ASP.NET MVC 2.0 {F85E285D-A4E0-4152-9332-AB1D724D3325}
  • ASP.NET MVC 3.0 {E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • ASP.NET MVC 4.0 {E3E379DF-F4C6-4180-9B81-6769533ABE47
  • C # {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
  • C++ {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
  • Datenbank {A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124}
  • Datenbank (andere Projekttypen) {4F174C21-8C12-11D0-8340-0000F80270F8}
  • Bereitstellungskabine {3EA9E505-35AC-4774-B492-AD1749C4943A}
  • Bereitstellungszusammenführungsmodul {06A35CCD-C46D-44D5-987B-CF40FF872267}
  • Einrichtung der Bereitstellung {978C614F-708E-4E1A-B201-565925725DBA}
  • Einsatz intelligenter Gerätekabinen {AB322303-2255-48EF-A496-5904EB18DA55}
  • Verteiltes System {F135691A-BF7E-435D-8960-F99683D2D49C}
  • F # {F2A71F9B-5D33-465A-A702-920D77279786}
  • J # {E6FDF86B-F3D1-11D4-8576-0002A516ECE8}
  • Legacy (2003) Intelligentes Gerät (C #) {20D4826A-C6FA-45DB-90F4-C717570B9F32}
  • Legacy (2003) Smart Device (VB.NET) {CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8}
  • Model-View-Controller v2 (MVC2) {F85E285D-A4E0-4152-9332-AB1D724D3325}
  • Model-View-Controller v3 (MVC3) {E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • Model-View-Controller v4 (MVC4) {E3E379DF-F4C6-4180-9B81-6769533ABE47}
  • Mono für Android {EFBA0AD7-5A72-4C68-AF49-83D382785DCF}
  • MonoTouch {6BC8ED88-2882-458C-8E55-DFD12B67127B}
  • MonoTouch-Bindung {F5B4F3BC-B597-4E2B-B552-EF5D8A32436F}
  • Portable Klassenbibliothek {786C830F-07A1-408B-BD7F-6EE04809D6DB}
  • SharePoint (C #) {593B0543-81F6-4436-BA1E-4747859CAAE2}
  • SharePoint (VB.NET) {EC05E597-79D4-47f3-ADA0-324C4F7C7484}
  • SharePoint-Workflow {F8810EC1-6754-47FC-A15F-DFABD2E3FA90}
  • Silverlight {A1591282-1198-4647-A2B1-27E5FF5F6F3B}
  • Intelligentes Gerät (C #) {4D628B5B-2FBC-4AA6-8C16-197242AEB884}
  • Intelligentes Gerät (VB.NET) {68B1623D-7FB9-47D8-8664-7ECEA3297D4F}
  • Lösungsordner {2150E333-8FDC-42A3-9474-1A3956D46DE8}
  • Test {3AC096D0-A1C2-E12C-1390-A8335801FDAB}
  • VB.NET {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
  • Visual Database Tools {C252FEB5-A946-4202-B1D4-9916A0590387}
  • Visual Studio-Tools für Anwendungen (VSTA) {A860303F-1F3F-4691-B57E-529FC101A107}
  • Visual Studio-Tools für Office (VSTO) {BAA0C2D2-18E2-41B9-852F-F413020CAA33}
  • Webanwendung {349C5851-65DF-11DA-9384-00065B846F21}
  • Website {E24C65DC-7377-472B-9ABA-BC803B73C61A}
  • Windows (C #) {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
  • Windows (VB.NET) {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
  • Windows (Visual C++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
  • Windows Communication Foundation (WCF) {3D9AD99F-2412-4246-B90B-4EAA41C64699}
  • Windows Phone 8/8.1 Blank/Hub/Webview-Anwendung {76F1466A-8B6D-4E39-A767-685A06062A39}
  • Windows Phone 8/8.1-App (C #) {C089C8C0-30E0-4E22-80C0-CE093F111A43}
  • Windows Phone 8/8.1-App (VB.NET) {DB03555F-0C8B-43BE-9FF9-57896B3C5E56}
  • Windows Presentation Foundation (WPF) {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548}
  • Apps und Komponenten für Windows Store (Metro) {BC8A1FFA-BEE3-4634-8014-F334798102B3}
  • Arbeitsablauf (C #) {14822709-B5A1-4724-98CA-57A101D1B079}
  • Workflow (VB.NET) {D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8}
  • Workflow Foundation {32F31D43-81CC-4C15-9DE6-3FC5453562B6}
  • Xamarin.Android {EFBA0AD7-5A72-4C68-AF49-83D382785DCF}
  • Xamarin.iOS {6BC8ED88-2882-458C-8E55-DFD12B67127B}
  • XNA (Windows) {6D335F3A-9D43-41b4-9D22-F6F17C4BE596}
  • XNA (XBox) {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2}
  • XNA (Zune) {D399B71A-8929-442a-A9AC-8BEC78BB2433}

P.S. Falls Sie sich fragen, ist die Liste offenbar gemeinfrei.

13
jahu

Wäre es am einfachsten, einfach ein neues Webprojekt zu erstellen und dann die Klassendateien und * .aspx-Dateien in das neue Webprojekt zu kopieren? 

0
Geoff