IncrediBuild Visual Studio 확장만 추출하기

BS가 다니는 회사는 개발용 네트워크가 외부와 분리되어 있습니다.
그리고 IncrediBuild 를 사용합니다.
그리고 IncrediBuild는 BS 임의로 버전업데이트를 못합니다.
그리고 오늘 Visual Studio 2019 업데이트를 했습니다.

두둥…
IncrediBuild(이하 IB)의 Visual Studio(이하 VS) 확장이 날아가 버렸습니다.
기존 버전 9.4.1의 VSIX를 수동 설치했지만 실패합니다.

IncrediBuild 사이트에서는 VSIX만 따로 받을 방법이 없습니다.

그래서…
일단 개발용 네트워크에서 VS 설치 관리자를 통해 IncrediBuild를 설치 시도합니다.
최신 파일 다운로드 경로를 확인합니다.
9.4.4의 경우

https://www.incredibuild.com/downloads/vs/incredibuild_vs_944_3042.exe

그리고 설치합니다.
그냥 실행하면 실패합니다.
다운로드 경로에서 명령 프롬프트를 엽니다.

Incredibuild\incredibuild_vs_944_3042.exe /install /vs_integrated /INSTALLDIR=“C:\Program Files (x86)\IncrediBuild”

위에 지정한 IB 설치 경로에 가면 IncrediBuildMenu.vsix가 있습니다.
이것만 복사해두고 다시 삭제합니다.
삭제는 위 명령에서 /install 대신 /uninstall을 하면 됩니다.

이제 추출된 VSIX를 따로 설치합니다.

Good…

IncrediBuild는 VSIX만 왜 배포를 안하는지 모르겠습니다.
참으로 불편하기 그지 없는 제품입니다.

Visual Studio 2017 이후에서 C++ 빌드 빠르게 하기

코드 유지 보수의 목적으로 소스 파일이 나뉘게 되는데
빌드할 때 C++ 소스가 OBJ 파일로 변경되어 링크되는데
수가 많다보니 엄청 느립니다.
이를 개선하는 방법 중 하나로 여러 개의 소스 파일을 하나의 소스 파일에 include 해서
OBJ 파일 생성 수량을 조절하는 방법이 있습니다.
(언리얼 엔진 3에서 사용하던 그 방법… 언4는 BS가 사용을 안해봐서 모르겠네요)

https://devblogs.microsoft.com/cppblog/support-for-unity-jumbo-files-in-visual-studio-2017-15-8-experimental/

간단히 내용을 요약하면
최상위 폴더에 Directory.Build.props 파일을 만들어 아래 내용 입력

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <EnableUnitySupport>true</EnableUnitySupport>
  </PropertyGroup>
</Project>

VS IDE에서 C++ 빌드 옵션에 Unity Build 항목이 나타남
설정을 잘하고 빌드

Visual Studio 용 확장 도구

VsVim

VIM 의 입력 방식을 사용할 수 있도록 해주는 확장 도구
나이 든? BS와 같이 VIM 의 입력 방식에 익숙해져 있는 사람들을 위한 도구?
또는 Linux 기반의 작업에 익숙해져 있는 사람들을 위한 도구?
Visual Studio Marketplace 에서 인기 상위 도구이다
https://marketplace.visualstudio.com/items?itemName=JaredParMSFT.VsVim

Open Now

솔루션에 포함된 파일을 후다닥 열 수 있는 도구이다.
VisualStudio 기본 기능인 “Ctrl + ,” 로 여는 것보다 정교하게? 열 수 있다.
예를 들면 A.proto 라는 파일이 P1, P2 2개의 프로젝트에 열려 있을 때
IDE 는 A.proto 를 어느 프로젝트를 통해서 열었는지에 따라 조금 다른 행동을 하는데
“Ctrl + ,” 로는 프로젝트를 선택할 수 없다. Open Now 로는 선택할 수 있다.
https://marketplace.visualstudio.com/items?itemName=Nem.OpenNow

Exception has been thrown by the target of an invocation

Visual Studio 사용 중에
“Exception has been thrown by the target of an invocation”
이걸 반복해서 자주 만난다면
Visual Studio 를 모두 닫고 (백그라운드로 살아 남아 있는 녀석까지 잘 확인해서)
AppData\Local\Microsoft\VisualStudio\12.0\ComponentModelCache 폴더의 파일을 지우고
다시 시작해서 사용해보고 그래도 안되면
devenv.exe /Setup /ResetSkipPkgs

Exception has been thrown by the target of an invocation

Exception has been thrown by the target of an invocation

라고 뜨면서 Visual Studio 2017 디버깅이 불가능한 지경에…
재설치를 해도 해결 되지 않고 해서 찾다보니

  1. Visual Studio 를 모두 종료
  2. AppData\Local\Microsoft\VisualStudio\12.0\ComponentModelCache 의 파일 모두 삭제
  3. 재시작… 그래도 안되면
  4. devenv.exe /Setup /ResetSkipPkgs

Skip 된 패키지의 찌끄러기가 남아서 그랬나 봅니다.