Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (seongtaejeong at gmail.com)
홈페이지
첨부 파일
 

(시리즈 글이 4개 있습니다.)
.NET Framework: 2111. C# - 바이너리 출력 디렉터리와 연관된 csproj 설정
; https://www.sysnet.pe.kr/2/0/13336

VS.NET IDE: 197. (OneDrive, Dropbox 등의 공유 디렉터리에 있는) C++ 프로젝트의 출력 경로 변경하기
; https://www.sysnet.pe.kr/2/0/13903

VS.NET IDE: 198. (OneDrive, Dropbox 등의 공유 디렉터리에 있는) C# 프로젝트의 출력 경로 변경하기
; https://www.sysnet.pe.kr/2/0/13907

VS.NET IDE: 199. Directory.Build.props에 정의한 속성에 대해 Condition 제약으로 값을 변경하는 방법
; https://www.sysnet.pe.kr/2/0/13917




Visual Studio - (OneDrive, Dropbox 등의 공유 디렉터리에 있는) C++ 프로젝트의 출력 경로 변경하기

(2025-05-03 업데이트) 귀찮음이 종종 있으니, 순수하게 Console Application 프로젝트만을 생성하는 경우가 아니라면 아래의 방법을 사용하는 것은 좋은 선택이 아닙니다. ^^; 저도 현재는 이 방법을 사용하지 않고 있습니다. 그냥 이런 방법도 있다는 정도로만 알고 넘어가시는 것을 추천합니다.



개인적으로 종종 프로젝트를 OneDrive나 Dropbox 공유 디렉터리에 생성할 때가 있습니다. 그런 경우, 빌드 결과물이 동기화로 인해 dropbox에 의해 잠겨져 이후 빌드에서 실패하는 경우가 발생합니다. 사실 애당초 *.obj 등의 파일이 공유 디렉터리 내에 생성될 필요가 없기도 합니다.

이런 문제를 해결하려면 vcxproj 파일에 출력 경로를 변경하는 설정을 대충 다음과 같이 추가할 수 있는데요,

<!-- https://learn.microsoft.com/en-us/visualstudio/ide/how-to-change-the-build-output-directory?tabs=cpp#set-the-intermediate-output-directory-for-a-project -->

<PropertyGroup>
    <!-- exe/pdb 파일 생성 경로 변경 -->
    <OutDir>C:\temp\builds\$(MSBuildProjectName)\$(Platform)\$(Configuration)\</OutDir>

    <!-- 임시 파일(obj, ilk, log,...) 생성 경로 변경 -->
    <IntDir>C:\temp\builds\$(MSBuildProjectName)\temp\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>

매번 vcxproj 파일을 수정하는 것이 번거롭다면 Directory.Build.props 파일을 이용해 공유 디렉터리의 루트에 생성하는 것으로 쉽게 우회할 수 있습니다.

C:\temp> type %USERPROFILE%\Dropbox\Directory.Build.props
<Project>
    <PropertyGroup>
        <OutDir>C:\temp\builds\$(MSBuildProjectName)\$(Platform)\$(Configuration)\</OutDir>
        <IntDir>C:\temp\builds\$(MSBuildProjectName)\temp\$(Platform)\$(Configuration)\</IntDir>
    </PropertyGroup>
</Project>




비록 빌드 과정에서의 충돌 문제는 발생하지 않지만, (공유 디렉터리에서) 그다음 귀찮은 결과물이 ".vs" 디렉터리인데요, 아쉽게도 이것을 제어하는 방법은 아직 없습니다. 현재 이슈로 등록돼 있긴 하지만,

Ability to relocate .vs folder out of solution directory
; https://developercommunity.visualstudio.com/t/Ability-to-relocate-vs-folder-out-of-so/1389600

Change location of .vs folder
; https://developercommunity.visualstudio.com/t/change-location-of-vs-folder/1392253

어째 해결의 기미가 영 보이질 않습니다. ^^;




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 5/3/2025]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 16  17  [18]  19  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
13526정성태1/14/202412203닷넷: 2201. C# - Facebook 연동 / 사용자 탈퇴 처리 방법
13525정성태1/13/202410979오류 유형: 891. Visual Studio - Web Application을 실행하지 못하는 IISExpress
13524정성태1/12/202410555오류 유형: 890. 한국투자증권 KIS Developers OpenAPI - GW라우팅 중 오류가 발생했습니다.
13523정성태1/12/202411399오류 유형: 889. Visual Studio - error : A project with that name is already opened in the solution.
13522정성태1/11/202412218닷넷: 2200. C# - HttpClient.PostAsJsonAsync 호출 시 "Transfer-Encoding: chunked" 대신 "Content-Length" 헤더 처리
13521정성태1/11/202411146닷넷: 2199. C# - 한국투자증권 KIS Developers OpenAPI의 WebSocket Ping, Pong 처리
13520정성태1/10/202411044오류 유형: 888. C# - Unable to resolve service for type 'Microsoft.Extensions.ObjectPool.ObjectPool`....' [1]
13519정성태1/10/202410484닷넷: 2198. C# - Reflection을 이용한 ClientWebSocket의 Ping 호출파일 다운로드1
13518정성태1/9/202411650닷넷: 2197. C# - ClientWebSocket의 Ping, Pong 처리
13517정성태1/8/202410269스크립트: 63. Python - 공개 패키지를 이용한 위성 이미지 생성 (pystac_client, odc.stac)
13516정성태1/7/202411254닷넷: 2196. IIS - AppPool의 "Disable Overlapped Recycle" 옵션의 부작용
13515정성태1/6/202410380닷넷: 2195. async 메서드 내에서 C# 7의 discard 구문 활용 사례 [1]
13514정성태1/5/202410410개발 환경 구성: 702. IIS - AppPool의 "Disable Overlapped Recycle" 옵션
13513정성태1/5/202411107닷넷: 2194. C# - WebActivatorEx / System.Web의 PreApplicationStartMethod 특성
13512정성태1/4/202411629개발 환경 구성: 701. IIS - w3wp.exe 프로세스의 ASP.NET 런타임을 항상 Warmup 모드로 유지하는 preload Enabled 설정
13511정성태1/4/202411214닷넷: 2193. C# - ASP.NET Web Application + OpenAPI(Swashbuckle) 스펙 제공
13510정성태1/3/202410963닷넷: 2192. C# - 특정 실행 파일이 있는지 확인하는 방법 (Linux)
13509정성태1/3/202412230오류 유형: 887. .NET Core 2 이하의 프로젝트에서 System.Runtime.CompilerServices.Unsafe doesn't support netcoreapp2.0.
13508정성태1/3/202414710오류 유형: 886. ORA-28000: the account is locked
13507정성태1/2/202412232닷넷: 2191. C# - IPGlobalProperties를 이용해 netstat처럼 사용 중인 Socket 목록 구하는 방법파일 다운로드1
13506정성태12/29/202311093닷넷: 2190. C# - 닷넷 코어/5+에서 달라지는 System.Text.Encoding 지원
13505정성태12/27/202313853닷넷: 2189. C# - WebSocket 클라이언트를 닷넷으로 구현하는 예제 (System.Net.WebSockets)파일 다운로드1
13504정성태12/27/202313020닷넷: 2188. C# - ASP.NET Core SignalR로 구현하는 채팅 서비스 예제파일 다운로드1
13503정성태12/27/202311614Linux: 67. WSL 환경 + mlocate(locate) 도구의 /mnt 디렉터리 검색 문제
13502정성태12/26/202312265닷넷: 2187. C# - 다른 프로세스의 환경변수 읽는 예제파일 다운로드1
13501정성태12/25/202311601개발 환경 구성: 700. WSL + uwsgi - IPv6로 바인딩하는 방법
... 16  17  [18]  19  20  21  22  23  24  25  26  27  28  29  30  ...