Visual Studio의 프로젝트에 기존 디렉토리 트리를 어떻게 추가합니까?

StackOverflow https://stackoverflow.com/questions/392473

  •  23-08-2019
  •  | 
  •  

문제

문제는 실제로 간단합니다. Visual Studio에서 폴더를 만드는 대신 파일 시스템에서 프로젝트에 대한 디렉토리 구조를 만듭니다. 구조를 유지하면서 모든 폴더와 파일을 프로젝트에 포함시키는 방법은 무엇입니까?

Services라는 폴더에서 "기존 파일을 추가"하고 디렉토리 구조의 파일로 탐색하는 경우 .. Services> AccountManagement> CreateAccount.cs : So : Services> CreateAccount.cs와 같은 Visual Studio에 나타납니다. 필요 없어.

조직과 동일한 구조를 사용하여 고객 개발자를 모방하기 때문에 전체 디렉토리 구조가 이미 해결되었습니다. Visual Studio의 프로젝트에 모든 폴더와 파일을 어떻게 추가합니까? 아니면 대부분의 Microsoft 사용자가하는 일을하고 "그것을 참조"하고 Visual Studio를 통해 각 폴더를 재현해야합니까?

도움이 되었습니까?

해결책

디렉토리 구조를 프로젝트 디렉토리에 넣어야합니다. 그런 다음 Solution Explorer Toolbox 상단에서 "모든 파일 표시"아이콘을 클릭하십시오. 그 후 추가 된 디렉토리가 표시됩니다. 그런 다음이 디렉토리를 선택하고 마우스 오른쪽 버튼을 클릭하고 "프로젝트 포함"을 선택해야합니다.

enter image description here

enter image description here

다른 팁

폴더를 끌어서 떨어 뜨릴 수도 있습니다 윈도우 익스플로러 Visual Studio 솔루션 창에.

Visual Studio 2015에서는 이것이 당신이하는 방식입니다.

특정 폴더 아래에 모든 후손 파일을 자동으로 포함하려면 다음과 같습니다.

<Content Include="Path\To\Folder\**" />

지정된 경로 내에 파일 만 포함하도록 제한 될 수 있습니다.

<Content Include="Path\To\Folder\*.*" />

또는 지정된 확장자가있는 파일 만 다음과 같습니다.

<Content Include="Path\To\Folder\*.jpg" >

참조: http://jamesrpatterson.com/blog/automatic-include-in-project-for-visual-studio

복사 붙여 넣기.

폴더, 모든 하위 디렉토리 및 파일을 추가하기 위해 복사하여 붙여 넣을 수 있습니다. 예를 들어 우리는 다음과 같습니다.

  1. 폴더의 Windows Explorer를 마우스 오른쪽 버튼으로 클릭하고 많은 파일과 폴더를 사용하여 폴더를 복사하십시오.

  2. 그런 다음 Visual Studio Solution Explorer에서 대상 폴더를 마우스 오른쪽 버튼으로 클릭하고 붙여 넣기를 클릭하십시오.

  3. 선택 사항 TFS에 추가; 그런 다음 상단 폴더에서 마우스 오른쪽 버튼을 클릭하고 TFS에 체크인하여 모든 하위 폴더와 파일을 확인하십시오.

상징적 링크를 사용할 수 있습니다. 이렇게하면 한 프로젝트에서 파일을 수정하면 다른 프로젝트에서 파일을 수정합니다 (실제로는 같은 파일이므로).

이것을하기 위해:

  1. 관리자로 CMD 프롬프트를 열십시오
  2. mklink /d [현재 프로젝트 디렉토리 이름] [다른 프로젝트의 디렉토리가 가리켜 져야합니다

이것은 단점과 함정이 있지만 다른 이름이 필요한 중복 라이브러리에 때때로 사용합니다.

ANOOP 편집 : Visual Studio에 추가하는 단계 :

  1. 위의 단계를 사용하여 프로젝트 폴더에서 링크를 만듭니다.
  2. Visual Studio에서 ... Solution Explorer에서 프로젝트를 선택하십시오.
  3. Solution Explorer 상단에서 ... 모든 파일 표시 버튼을 클릭하십시오 (이미 활성화 된 경우 두 번 클릭해야 할 수도 있음).
  4. 이제 프로젝트에 링크가 표시됩니다 ... 마우스 오른쪽 버튼을 클릭하고 프로젝트에 포함시킵니다.

이것들은 내가 따르는 단계이며 몇 가지 다른 프로젝트를 위해 일합니다.

확장하기 위해 유첸의 대답, 파일과 경로를 링크로 포함시킬 수 있습니다. 프로젝트 폴더 구조에서 추가 사본을 만들지 않기 때문에 기존 항목을 추가하는 것과 동일하지 않습니다. 하나의 정식 폴더 / 파일 등이 여러 곳에서 사용되기를 원하지만 하나의 버전 / 사본 만 유지하려면 유용합니다.

다음은 다음에 추가 할 수있는 예입니다. *.csproj 링크를 작성하려면 파일

<Compile Include="$(Codez)\z.Libraries\Common\Strings\RegexExtensions.cs">
    <Link>Helpers\RegexExtensions.cs</Link>
</Compile>

<Compile Include="..\..\z.Libraries\MoreLINQ\MoreLinq\ExceptBy.cs">
    <Link>Helpers\ExceptBy.cs</Link>
</Compile>

<Content Include="C:\Codez\Libs\Folder\OtherFolder\**\*.*">
    <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

$(Codez) 내가 정의한 Windows 환경 변수입니다. 같은 방식으로 내장 환경 변수를 사용할 수 있습니다.

마지막 예제 그룹은 최종 출력에 필요한 컨텐츠 파일입니다. 보다 https://stackoverflow.com/a/11808911/492 그리고 그에 대한 다른 답변과 링크.

더 많은 msbuild 정보 https://msdn.microsoft.com/en-us/library/bb629388.aspx

Visual Studio 2017에서는 사이를 전환합니다 솔루션보기 그리고 폴더보기 이리저리. 솔루션을 청정하게 유지하기 때문에 이것이 더 나은 옵션이라고 생각합니다. 이것을 사용하여 .gitignore, .md 파일 등을 편집합니다.

Solution View and Folder View

나는 compile을 포함하여 이것을 수행하는 방법을 찾았다 고 생각합니다 = ". code ***. cs"내가 원하는 것은 코드 폴더 아래에 코드를 재귀 적으로 포함시키는 것입니다.

다음은 프로젝트 파일 샘플입니다.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0" DefaultTargets="BuildTarget">
    <PropertyGroup>
        <OutputType>Library</OutputType>
    </PropertyGroup>
    <PropertyGroup>
        <StartupObject />
    </PropertyGroup>
    <PropertyGroup>
        <RootNamespace>Autogen</RootNamespace>
    </PropertyGroup>
    <ItemGroup>
        <Compile Remove="@(Compile)" />
        <Compile Include=".\Code\**\*.cs" />
    </ItemGroup>
    <Target Name="BuildTarget">
        <Message Text="Build selected" Importance="high"/>
    </Target>
</Project>

Visual Studio 2013에서는 폴더를 마우스 오른쪽 버튼으로 클릭 할 때 "프로젝트에 포함"할 수 없었습니다. 작업은 폴더를 확장하여 모든 파일을 선택한 다음 "프로젝트에 포함"를 선택하는 것입니다. 각 폴더를 하나씩 수행해야하므로 매우 지루했습니다 (그러나 적어도 한 번에 각 폴더의 모든 파일을 수행 할 수 있음). 파일 경로를 저장하는 것으로 보입니다 (파일에서 속성을 볼 수 있습니다. "상대 경로"옵션을보고 있습니다.)

이를 사용하여 Visual Studio Installer 프로젝트에 일부 데이터 파일을 배포하기를 희망하며 포함 된 파일을 선택하고 경로를 보존하는 것으로 보입니다.

내가 알 수있는 한, VS2010 에서이 작업을 수행하는 유일한 방법은 드래그 앤 드롭 방법과 유사합니다. 프로젝트를 추가 할 솔루션을 마우스 오른쪽 버튼으로 클릭하십시오. 응용 프로그램 메뉴에는 추가 ... 항목이 있습니다. 이를 열면 옵션 중 하나는 솔루션에 기존 프로젝트를 추가하는 것입니다.

열리는 대화 상자에서 솔루션의 프로젝트 파일이 포함 된 폴더로 이동하여 선택하십시오. vs는 해당 프로젝트 파일을 가져 오는 데있어 전체 디렉토리를 가져 오며 해당 프로젝트의 일부인 하위 디렉토리를 가정합니다.

이를 위해서는 기존 프로젝트 파일이 필요하므로 트리가 프로젝트로 변환 될 때까지 디렉토리 트리를 가져 오는 것은 불가능하지 않습니다.

나는 내 만족에 대한 대답을 찾지 못했기 때문에 나 자신을 알아 냈습니다.

프로젝트에 외부 소스 코드를 추가하고 전체 코드에 대해 복사하고 싶지 않은 경우 다음은 귀하에게 답변입니다. 나는 다른 gits에 대한 많은 의존성을 가지고 있으며, 미세하지 않으면 시간당 업데이트됩니다. 동기화하기 위해 매시간 복사 할 수 없습니다. 여기에해야 할 일이 있습니다.

이것이 구조라고 가정합니다.

/root/proja/src

/root/proja/포함

/root/projb/src

/root/projb/포함

/root/yourproj/src

/root/yourproj/포함

  1. VS 솔루션을 시작하십시오.
  2. 솔루션 바로 아래의 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하십시오.
  3. 그런 다음 "add", "new 필터"를 클릭하고 Proja의 "Proja"라는 이름을 넣습니다.
  4. "proja"를 마우스 오른쪽 버튼으로 클릭하고 "Add", "New Filter"를 클릭하고 이름 "SRC"를 입력하십시오.
  5. "proja"를 마우스 오른쪽 버튼으로 클릭하고 "add", "new Filter"를 클릭하고 이름을 입력하십시오.
  6. "proja"/"src"를 마우스 오른쪽 버튼으로 클릭하고 "add", "기존 항목"을 클릭 한 다음/root/proja/src로 탐색하여 모든 소스 코드를 추가하거나 원하는 것의 하나씩 추가하십시오.
  7. "proja"/"포함"에 대해서도 동일하게 수행하십시오.
  8. projb에 대해서도 똑같이합니다. 이제 귀하의 외부 외부/기존 프로젝트가 솔루션/프로젝트에 있습니다. VS는 그들을 함께 컴파일합니다. 여기에 트릭이 있습니다. Proja와 Projb는 프로젝트에서 가상 폴더이므로 컴파일러는 Proja/포함을 찾지 못할 수 있습니다.

  9. proja/contuary를 찾지 못하면 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택하십시오.

  10. "C/C ++"로 이동하십시오. "추가 포함 디렉토리"편집, Proja/포함 "../proja/includes", 상대 경로를 추가하십시오.

중복 된 포함/헤더 파일이있는 경우 하나의 경고는 "헤더 파일"에서 "프로젝트 제외"가 실제로 작동하지 않습니다. 그것은 Vs의 버그입니다.

Visual Studio 2017 및 Newer는 새로운 경량을 지원합니다 .csproj "SDK 형식"으로 알려진 형식. 이 형식의 몇 가지 장점 중 하나는 파일과 폴더 목록을 포함하는 대신 포함, 파일은 기본적으로 와일드 카드가 포함되어 있습니다. 따라서이 새로운 형식을 사용하면 Explorer 또는 Command Line에 추가 된 파일 및 폴더가 자동으로 선택됩니다!

SDK 형식 .csproj 파일 현재 다음 프로젝트 유형과 함께 작동합니다:

  • 수업 도서관 프로젝트

  • 콘솔 앱

  • ASP.NET 코어 웹 앱

  • 모든 유형의 .NET 핵심 프로젝트

새 형식을 사용하려면 새 .NET 코어 또는 .NET 표준 프로젝트를 작성하십시오. Visual Studio 2019에서도 전체 .NET 프레임 워크에 대해 템플릿이 업데이트되지 않았으므로 .NET 클래스 라이브러리를 작성하여 .NET 표준 라이브러리 템플릿을 선택한 다음 프로젝트 파일을 편집하여 선택한 프레임 워크 버전을 대상으로합니다 ( 새로운 스타일 프로젝트 형식은 Visual Studio에서 편집 할 수 있습니다. 솔루션 탐색기의 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "프로젝트 파일 편집"을 선택하십시오). 예를 들어:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>
</Project>

추가 읽기 :

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top