44 Stimmen

Wie konvertiert man ein Klassenbibliotheksprojekt in ein Webanwendungsprojekt?

Lange Rede, kurzer Sinn, wegen einiger Probleme mit der Architektur und der Tatsache, dass jemand bereits ein paar .aspx-Dateien in einer Klassenbibliothek, ich möchte nur die Änderung zu beenden und konvertieren eine Klassenbibliothek zu einer Web-Anwendung. Dies geschieht mit Visual Studio 2010 und .NET 4.0. Gibt es eine einfache Möglichkeit, dies zu tun? Vielen Dank!

EDIT: Ich hatte auf eine bessere Methode gehofft, als das Projekt neu zu erstellen. Ich hatte zu viele Probleme mit kaputten Referenzen, als ich versucht habe, einfach ein neues Projekt zu erstellen, einschließlich eines, das ich scheinbar nie beheben konnte.

0 Stimmen

"class librarry", arrr! Ich hoffe, ihr habt den Code nicht gepirscht! Arr! Entschuldigung.

99voto

Brad Punkte 1041

Ich habe das heute in Visual Studio 2005 von Hand gemacht, weil es mir einfacher und schneller erschien als das oben beschriebene. Ich habe einfach eine .csproj-Datei einer funktionierenden Webanwendung mit meiner Klassenbibliothek verglichen, um die relevanten Unterschiede zu ermitteln. Auf dieser Grundlage habe ich die folgenden Änderungen vorgenommen. Beachten Sie, dass dies für andere Versionen oder Ihr individuelles Projekt anders sein kann.

1) Gleich nach der <ProjectGuid> Element in der Nähe des oberen Endes, habe ich

<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 

2) Ich habe <ProjectType>Local</ProjectType>
3) Am Ende der Datei, kurz vor dem Schluss </Project> fügte ich hinzu

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

5 Stimmen

Dies ist die richtige Antwort, da sie die Frage tatsächlich beantwortet, während die ausgewählte Antwort eine Umgehungslösung ist... und es dauert nicht lange, diese zur Proj-Datei hinzuzufügen.

2 Stimmen

Funktioniert mit VS 2012. Ich habe dies für <ProjectTypeGuids> verwendet: <ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{34‌​9c5851-65df-11da-938‌​4-00065b846f21};{fae‌​04ec0-301f-11d3-bf4b‌​-00c04f79efbc}</Proj‌​ectTypeGuids>

0 Stimmen

Ich habe 10 Sekunden gebraucht, um das zu tun, nachdem ich mein Diff-Tool eingerichtet hatte. Das ist viel schneller, als ein neues Projekt zu erstellen, Dateien zu kopieren und dann all die Dinge zu debuggen, die nicht funktionieren.

16voto

jahu Punkte 5137

Es wurde bereits in den Kommentaren erwähnt, aber irgendwie ist es leicht zu übersehen (zumindest habe ich es übersehen). Wenn Sie Brads Lösung angewandt haben, aber Ihr Projekt immer noch die Option zum Hinzufügen von Bereichen, Controllern und Ansichten fehlt, müssen Sie noch ein MVC-Projekt guid hinzufügen {E3E379DF-F4C6-4180-9B81-6769533ABE47} .

El ProjectTypeGuids Zeile sollte nun wie folgt aussehen:

<ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

Wie von JamesQMurphy erwähnt, {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} wird in VB-Projekten nicht funktionieren. Das liegt daran, dass es eine C#-Projekt-Guid ist. Für VB-Projekte muss also eine VB-Projekt-Guid verwendet werden. Diese Guid lautet {F184B08F-C81C-45F6-A57F-5ABD9991F28F} .

Hier ist eine Liste einiger bekannter Projektleitfäden (entnommen aus diese 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}
  • Database {A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124}
  • Datenbank (andere Projekttypen) {4F174C21-8C12-11D0-8340-0000F80270F8}
  • Deployment Cab {3EA9E505-35AC-4774-B492-AD1749C4943A}
  • Modul für die Zusammenführung der Bereitstellung {06A35CCD-C46D-44D5-987B-CF40FF872267}
  • Einrichtung der Bereitstellung {978C614F-708E-4E1A-B201-565925725DBA}
  • Bereitstellung Smart Device Cab {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) Smart Device (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}
  • Smart Device (C#) {4D628B5B-2FBC-4AA6-8C16-197242AEB884}
  • Smart Device (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 App {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}
  • Windows Store (Metro) Apps & Komponenten {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 wundern: Die Liste ist offenbar öffentlich zugänglich.

6voto

eriksv88 Punkte 3366

Erstellen Sie ein neues Webanwendungsprojekt in Ihrer Projektmappe und ziehen Sie alle Dateien aus der Klassenbibliothek per Drag & Drop in das neue Webanwendungsprojekt.

0 Stimmen

Ich hatte auf eine einfache Möglichkeit gehofft, die Projektdateien direkt zu ändern, aber ich denke, dies ist die einzige Möglichkeit.

0 Stimmen

Es gibt auch andere Lösungen, sondern sie brauchen mehr Zeit;)

1voto

Rabolf Punkte 2881

In .net core 3.1 ändern Sie die Projektdatei [Projektname].csproj und ändern Sie

<Project Sdk="Microsoft.NET.Sdk">

zu

<Project Sdk="Microsoft.NET.Sdk.Web">

Speichern Sie nun die Änderungen und laden Sie das Projekt neu. Nun haben Sie ein Web-App-Projekt (MVC).

0voto

Geoff Punkte 345

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

0 Stimmen

Ich habe das tatsächlich versucht, hatte aber einen Haufen kaputter Verweise, die ich nicht mehr reparieren konnte. Ich denke, ich könnte es noch einmal versuchen....

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X