Visual Studio의 프로젝트에 기존 디렉터리 트리를 추가 비용하나요?
문제는 정말 간단합니다. Visual Studio에서 폴더를 만드는 대신 파일 시스템에 내 프로젝트의 디렉터리 구조를 만듭니다. 구조를 유지하면서 프로젝트의 모든 폴더와 파일을 어떻게 포함합니까?
Services라는 폴더에서 "기존 파일 추가"를 수행하고 디렉터리 구조 .. Services> AccountManagement> CreateAccount.cs의 파일로 이동하면 Visual Studio에서 Services> CreateAccount.cs와 같이 나타납니다. 필요 없어.
나는 조직에 동일한 구조를 사용하는 클라이언트 개발자를 모방하고 전체 디렉토리 구조가 이미 해결되었습니다. Visual Studio의 프로젝트에 모든 폴더와 파일을 어떻게 추가 할 수 있습니까? 아니면 대부분의 Microsoft 사용자가 수행하는 작업을 수행하고 "참여"하고 Visual Studio를 통해 각 폴더를 다시 처리합니까?
프로젝트 디렉토리에 디렉토리 구조를 넣어야합니다. 그런 다음 솔루션 탐색기 도구 상자 상단의 "모든 파일 표시"아이콘을 클릭합니다. 그 후 추가 된 디렉토리가 표시됩니다. 그런 다음이 디렉토리를 선택하고 마우스 오른쪽 버튼을 클릭 한 다음 "프로젝트에 포함"을 선택해야합니다.
Windows 탐색기 에서 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
복사 및 붙여 넣기 .
폴더, 모든 하위 디렉토리 및 파일을 추가하려면 복사 및 붙여 넣기를 할 수도 있습니다. 예를 들어 다음을 수행 할 수 있습니다.
Windows 탐색기에서 폴더를 마우스 오른쪽 버튼으로 클릭하고 파일과 폴더가 많은 폴더를 복사합니다.
그런 다음 Visual Studio 솔루션 탐색기에서 대상 폴더를 마우스 오른쪽 단추로 클릭하고 붙여 넣기를 클릭합니다.
TFS에 추가 옵션; 그런 다음 상단 폴더에서 마우스 오른쪽 버튼을 클릭하고 TFS에 체크인하여 모든 하위 폴더와 파일을 체크인하십시오.
심볼릭 링크를 사용할 수 있습니다. 이렇게하면 한 프로젝트에서 파일을 수정하면 다른 프로젝트에서도 수정됩니다 (실제로 동일한 파일이기 때문).
이것을하기 위해:
- 관리자 권한으로 cmd 프롬프트 열기
- mklink / d [현재 프로젝트 디렉토리 이름] [가리키는 다른 프로젝트의 디렉토리]
여기에는 단점과 함정이 있지만 다른 이름이 필요한 중복 라이브러리에 가끔 사용합니다.
Anoop 편집 : Visual Studio에 추가하는 단계 :
- 위의 단계를 사용하여 프로젝트 폴더에 링크를 만듭니다.
- Visual Studio에서 ... 솔루션 탐색기에서 프로젝트를 선택합니다.
- 솔루션 탐색기 상단에서 모든 파일 표시 버튼을 클릭합니다 (이미 활성화 된 경우 두 번 클릭해야 할 수 있음).
- 이제 링크가 프로젝트에 표시됩니다 ... 마우스 오른쪽 버튼을 클릭하고 프로젝트에 포함을 선택합니다.
이것은 내가 따르는 단계이며 몇 가지 다른 프로젝트에서 작동합니다.
Yuchen의 답변 을 확장하려면 파일과 경로를 링크로 포함 할 수 있습니다. 프로젝트의 폴더 구조에 추가 사본을 만들지 않기 때문에 기존 항목을 추가하는 것과는 다릅니다. 하나의 표준 폴더 / 파일 등을 여러 곳에서 사용하고 싶지만 하나의 버전 / 사본 만 유지하려는 경우 유용합니다.
다음은 *.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 및 기타 답변 및 링크를 참조 하십시오 .
https://msdn.microsoft.com/en-us/library/bb629388.aspx 에서 더 많은 MSBuild 정보
Visual Studio 2017에서는 솔루션보기 와 폴더보기 간에 전환 합니다. 솔루션을 더 깨끗하게 유지하기 때문에 이것이 더 나은 옵션이라고 생각합니다. .gitignore, .md 파일 등을 편집하는 데 사용합니다.
Compile Include = ". \ 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 / includes
/ root / projB / src
/ root / projB / includes
/ root / yourProj / src
/ root / yourProj / includes
- VS 솔루션을 시작하십시오.
- 솔루션 바로 아래에있는 프로젝트 이름을 마우스 오른쪽 단추로 클릭하십시오.
- 그런 다음 "추가", "새 필터"를 클릭하고 projA에 대해 "projA"라는 이름을 입력합니다.
- "projA"를 마우스 오른쪽 버튼으로 클릭하고 "추가", "새 필터"를 클릭하고 이름 "src"를 입력합니다.
- "projA"를 마우스 오른쪽 버튼으로 클릭하고 "추가", "새 필터"를 클릭하고 "포함"이름을 입력합니다.
- "projA"/ "src"를 마우스 오른쪽 버튼으로 클릭하고 "추가", "기존 항목"을 클릭 한 다음 / root / projA / src를 검색하여 모든 소스 코드를 추가하거나 원하는 코드를 하나씩 추가합니다.
- "projA"/ "includes"에 대해서도 동일하게 수행
projB에 대해서도 동일하게 수행하십시오. 이제 외부 / 기존 프로젝트가 솔루션 / 프로젝트에 있습니다. VS는 함께 컴파일합니다. 여기에 트릭이 있습니다. projA 및 projB는 프로젝트 아래의 가상 폴더이므로 컴파일러가 projA / includes를 찾지 못할 수 있습니다.
projA / includes를 찾지 못하면 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택합니다.
- "C / C ++"로 이동합니다. "추가 포함 디렉터리"를 편집하고 "../projA/includes", 상대 경로와 같은 projA / include를 추가합니다.
한 가지주의 할 점은 중복 된 포함 / 헤더 파일이있는 경우 "헤더 파일"의 "프로젝트에서 제외"가 실제로 작동하지 않는다는 것입니다. VS의 버그입니다.
Visual Studio 2017 이상 .csproj
은 "SDK 형식"으로 알려진 새로운 경량 형식을 지원합니다 . 이 형식의 몇 가지 장점 중 하나는 포함 된 파일 및 폴더 목록을 포함하는 대신 파일이 기본적으로 와일드 카드로 포함된다는 것입니다. 따라서이 새로운 형식을 사용하면 탐색기 나 명령 줄에 추가 된 파일과 폴더가 자동으로 선택됩니다!
SDK 형식 .csproj
파일은 현재 다음 프로젝트 유형에서 작동합니다 .
클래스 라이브러리 프로젝트
콘솔 앱
ASP.NET Core 웹앱
모든 유형의 .NET Core 프로젝트
새 형식을 사용하려면 새 .NET Core 또는 .NET Standard 프로젝트를 만듭니다. Visual Studio 2019에서도 전체 .NET Framework 용으로 템플릿이 업데이트되지 않았기 때문에 .NET 클래스 라이브러리를 만들려면 .NET Standard Library 템플릿을 선택한 다음 원하는 프레임 워크 버전을 대상으로하는 프로젝트 파일을 편집합니다 ( 새 스타일 프로젝트 형식은 Visual Studio 내에서 편집 할 수 있습니다. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 "프로젝트 파일 편집"을 선택하면됩니다. 예를 들면 :
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
</Project>
추가 읽기 :
'ProgramingTip' 카테고리의 다른 글
하나의 CSS 파일을 다른 파일에 포함 할 수 있습니까? (0) | 2020.09.29 |
---|---|
std :: string을 다듬는 가장 좋은 방법은 무엇입니까? (0) | 2020.09.29 |
div 블록 내부의 CSS 중앙 텍스트 (가로 및 세로) (0) | 2020.09.29 |
Android Studio의 코드 단축키 (0) | 2020.09.29 |
딕셔너리에서 최대 값을 가진 키를 얻었습니까? (0) | 2020.09.29 |