2009-02-13 16 views

Odpowiedz

34

Prawidłowa odpowiedź brzmi tak. Wystarczy edytować plik csproj (msbuild) i zmienić ProjectGuid i usunąć ProjectTypeGuids:

<ProjectGuid>{9845066A-3C9E-4F51-8F5F-8F513E8D03C1}</ProjectGuid> 

to naprawdę jest takie proste.

+0

Mam VS2010 i ten Guid nie działa dla mnie, próbowałem tego: ' {2CAAF0E8-A840-4ABF-BF2A-BCD4338D80B5}' –

+1

Jaki jest sens zmiany 'ProjectGuid'? Czy to nie jednoznacznie identyfikuje projekt? Wydaje mi się, że dla każdego projektu generowany jest nowy. – Sam

+0

Jako alternatywę ** zmień typ wydruku projektu na bibliotekę klas, możesz to znaleźć we właściwościach projektu w zakładce Aplikacja **, zobacz http://stackoverflow.com/a/11536160/313113 – bitek

0

nr Najprościej jest stworzyć Class.Library i skopiuj pliki .cs do swojego nowego projektu.

Biblioteka klas nie zrobi nic ze stronami .aspx, zobaczy je jako pliki w rozwiązaniu.

+0

Mam główną aplikację internetową, która ładuje formanty z innej aplikacji sieci Web. Powinien załadować je z biblioteki klas, ponieważ w tej chwili mam dwa pliki web.config i jest to nudne. –

1

Przyszedłem tutaj, aby mieć bibliotekę klas z elementami menu mvc. To jest, kliknij prawym przyciskiem myszy folder widoków, aby dodać widok lub kontroler, aby dodać kontroler w klasie.

Udało mi się to osiągnąć, edytując plik mvc.web.app.csproj, skopiuj kod <ProjectTypeGuids /> do mojego projektu class.lib.csproj.

Aby uzyskać więcej informacji na temat tego, co robię, zobacz: How to reuse Areas, Controllers, Views, Models, Routes in multiple apps or websites.

31

Jeśli chcesz, aby to dokładnie taka sama jak projekt biblioteki klas, oto jak to zrobić za pomocą Visual Studio 2010 projekt:

  1. edytować plik csproj

    • Pod PropertyGroup
      • Usuń ProjectTypeGuids
      • Usuń UseIISExpress
      • Dodaj <FileAlignment>512</FileAlignment>
    • Zmień <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> do <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    • Usuń <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
    • Usuń <ProjectExtensions>
    • Pod <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
      • Zmień OutputPath do bin\Debug\
    • Pod <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
      • Zmień OutputPath do bin\Release\
  2. Otwórz projekt w Visual Studio

    • Usuń dowolny z następujących punktów odniesienia, jeśli są one nieużywane
      • systemu .Konfiguracyjne
      • System.Drawing
      • System.EnterpriseServices
      • system.Web
      • System.Web.ApplicationServices
      • System.Web.DynamicData
      • System.Web.Entity
      • System.Web.Extensions
      • System.Web.Services
    • usunąć dowolny z następujących plików/folderów, jeśli są niechciane/nieużywany
      • App_Data
      • * .aspx
      • Web.config
      • skrypty
      • Style
      • Global.asax
      • Site.Master
+1

To zadziałało dla mnie w VS2013. – Tom

+3

Działa również w VS2015 –

Powiązane problemy