¿Cómo convertir un proyecto de Biblioteca de clases a un proyecto de aplicación Web?


Larga historia corta, debido a algunos problemas con la arquitectura y el hecho de que alguien ya puso algunos.archivos aspx en una biblioteca de clases, me gustaría terminar el cambio y convertir una biblioteca de clases en una aplicación web. Esto está utilizando Visual Studio 2010 y. NET 4.0. ¿Hay una manera fácil de hacer esto? ¡Gracias!

EDITAR: Esperaba un método mejor que recrear el proyecto, tuve demasiados problemas con las referencias rotas cuando intenté crear un nuevo proyecto, incluyendo uno que nunca pude arreglar.

Author: Housy, 2010-12-20

4 answers

Cree un nuevo proyecto de aplicación web en su solución y arrastre y suelte todos los archivos de la biblioteca de clases al nuevo proyecto de aplicación web.

 5
Author: sv88erik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-20 18:59:37

Hice esto a mano hoy en Visual Studio 2005 porque parecía más fácil y más rápido que el anterior. Acabo de diffed una aplicación web de trabajo .archivo csproj con mi biblioteca de clases para determinar las diferencias relevantes. Basándome en eso, hice los siguientes cambios. Tenga en cuenta que puede ser diferente para otras versiones o su proyecto individual.

1) Justo después del elemento <ProjectGuid> cerca de la parte superior, agregué

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

2) Eliminé <ProjectType>Local</ProjectType>
3) En la parte inferior del archivo, a la derecha antes del cierre </Project>, agregué

<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>
 82
Author: Brad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-07 18:40:55

Ya se menciona en los comentarios, pero de alguna manera es fácil perderse (al menos me lo perdí). Si aplicaste la solución de Brad, pero a tu proyecto aún le falta la opción de agregar áreas, controladores y vistas, aún necesitas agregar un guid de proyecto MVC {E3E379DF-F4C6-4180-9B81-6769533ABE47}.

La línea ProjectTypeGuids ahora debería verse así:

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

Como menciona JamesQMurphy, {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} no funcionará en proyectos VB. Eso es porque es un guid de proyecto C#. Por lo tanto, para el proyecto VB se debe usar un guid de proyecto VB. Este guid es {F184B08F-C81C-45F6-A57F-5ABD9991F28F}.

Aquí hay una lista de algunos de los guids conocidos del proyecto (tomados de este sitio):

  • 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}
  • Base de datos {A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124}
  • Base de datos (otros tipos de proyectos) {4F174C21-8C12-11D0-8340-0000F80270F8}
  • Deployment Cab {3EA9E505-35AC-4774-B492-AD1749C4943A}
  • Módulo de fusión de despliegue {06A35CCD-C46D-44D5-987B-CF40FF872267}
  • Configuración de la implementación {978C614F-708E-4E1A-B201-565925725DBA}
  • Cabina de Dispositivo Inteligente de Implementación {AB322303-2255-48EF-A496-5904EB18DA55}
  • Sistema distribuido {F135691A-BF7E-435D-8960-F99683D2D49C}
  • F # {F2A71F9B-5D33-465A-A702-920D77279786}
  • J # {E6FDF86B-F3D1-11D4-8576-0002A516ECE8}
  • Dispositivo inteligente heredado (2003) (C#) {20D4826A-C6FA-45DB-90F4-C717570B9F32}
  • Legacy (2003) Dispositivo inteligente (VB.NET) {CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8}
  • Modelo-Vista-Controlador v2 (MVC2) {F85E285D-A4E0-4152-9332-AB1D724D3325}
  • Modelo-Vista-Controlador v3 (MVC3) {E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • Modelo-Vista-Controlador v4 (MVC4) {E3E379DF-F4C6-4180-9B81-6769533ABE47}
  • Mono para Android {EFBA0AD7-5A72-4C68-AF49-83D382785DCF}
  • MonoTouch {6BC8ED88-2882-458C-8E55-DFD12B67127B}
  • Encuadernación MonoTouch {F5B4F3BC-B597-4E2B-B552-EF5D8A32436F}
  • Biblioteca de clases portátil {786C830F-07A1-408B-BD7F-6EE04809D6DB}
  • SharePoint (C#) {593B0543-81F6-4436-BA1E-4747859CAAE2}
  • SharePoint (VB.NET) {EC05E597-79D4-47f3-ADA0-324C4F7C7484}
  • Flujo de trabajo de SharePoint {F8810EC1-6754-47FC-A15F-DFABD2E3FA90}
  • Silverlight {A1591282-1198-4647-A2B1-27E5FF5F6F3B}
  • Dispositivo inteligente (C#) {4D628B5B-2FBC-4AA6-8C16-197242AEB884}
  • Dispositivo inteligente (VB.NET) {68B1623D-7FB9-47D8-8664-7ECEA3297D4F}
  • Carpeta de Solución {2150E333-8FDC-42A3-9474-1A3956D46DE8}
  • Prueba {3AC096D0-A1C2-E12C-1390-A8335801FDAB}
  • VB.NET {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
  • Visual Database Tools {C252FEB5-A946-4202-B1D4-9916A0590387}
  • Herramientas de Visual Studio para aplicaciones (VSTA) {A860303F-1F3F-4691-B57E-529FC101A107}
  • Herramientas de Visual Studio para Office (VSTO) {BAA0C2D2-18E2-41B9-852F-F413020CAA33}
  • Aplicación web {349C5851-65DF-11DA-9384-00065B846F21}
  • Sitio web {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 En blanco/Hub/Aplicación Webview {76F1466A-8B6D-4E39-A767-685A06062A39}
  • Aplicación de Windows Phone 8/8.1 (C#) {C089C8C0-30E0-4E22-80C0-CE093F111A43}
  • Windows Phone 8/8.1 Aplicación (VB.NET) {DB03555F-0C8B-43BE-9FF9-57896B3C5E56}
  • Windows Presentation Foundation (WPF) {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548}
  • Aplicaciones y componentes de la Tienda Windows (Metro) {BC8A1FFA-BEE3-4634-8014-F334798102B3}
  • Flujo de trabajo (C#) {14822709-B5A1-4724-98CA-57A101D1B079}
  • Flujo de trabajo (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.d. En caso de que se pregunte, la lista es aparentemente de dominio público.

 13
Author: jahu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-16 08:46:34

Sería más fácil simplemente crear un nuevo proyecto web, luego copiar los archivos de clase y *.archivos aspx en el nuevo proyecto web?

 0
Author: Geoff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-20 18:59:32