그동안 진행해 오던 사내 프로젝트가 다소 복잡해 지면서, 빌드도 다양하게 지원을 하는 식으로 변경이 되었습니다.
- 시간 만료되는 버전
- 사이트 제한 버전
- 무제한 상용 버전
과 같이 3가지가 있어야 하는데요. 문제는, 위의 버전들을 각각 수작업으로 상수 변경하는 식으로 컴파일 하고 cab 파일 만들고 인스톨 본을 제작하다 보니 꽤나 실수가 많이 나오게 되었습니다.
아무래도, 이러한 것들을 자동으로 만들어 주는 "빌드 머신"을 두고, 명령어 하나만 입력하면 자동으로 모든 버전의 컴파일과 함께 배포까지 되도록 하는 것을 만드는 것이 좋겠다는 판단이 들더군요. ^^;
당연히... 첫 번째 순서가 ... 명령행에서 컴파일을 할 수 있느냐를 봐야 했습니다.
예전에는 .mak 파일을 이용해서 했었는데. 지금도 그걸 만져야 하나 싶어서 귀찮은 마음이... ^^; 생겼습니다. 혹시나 싶은 마음에 검색을 해 보니... ^^ 오... devenv.exe (보통 VS.NET IDE 띄울 때 실행시키죠) 자체에서, 이미 IDE 환경에서 만들어 두었던 Solution(.sln) / Project(.csproj, .vcproj) 파일을 입력 파라미터로 해서 컴파일을 그대로 할 수가 있네요. ^^
보다 자세한 사항은 다음의 URL을 참조하십시오.
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2015/ide/reference/build-devenv-exe
... ^^; 벌써 아셨던 분들도 많으시겠지만.
No | Writer | Date | Cnt. | Title | File(s) |
11894 | 정성태 | 5/10/2019 | 24480 | VS.NET IDE: 135. Visual Studio - ML.NET Model Builder 소개 [5] | |
11893 | 정성태 | 5/10/2019 | 20564 | 오류 유형: 535. C# 6.0 이상의 문법을 컴파일 시 오류가 발생한다면? | |
11892 | 정성태 | 5/10/2019 | 20472 | 웹: 38. HTTP Cookie의 expires 시간 형식(RFC7231) | |
11891 | 정성태 | 5/9/2019 | 23610 | .NET Framework: 831. (번역글) .NET Internals Cookbook Part 12 - Memory structure, attributes, handles | |
11890 | 정성태 | 5/8/2019 | 19249 | 개발 환경 구성: 439. "Visual Studio Enterprise is required to execute the test." 메시지와 관련된 코드 기록 | |
11889 | 정성태 | 5/8/2019 | 19288 | 개발 환경 구성: 438. mstest, QTAgent의 로그 파일 설정 방법 | |
11888 | 정성태 | 5/8/2019 | 37196 | .NET Framework: 830. C# - 비동기 호출을 취소하는 CancellationToken의 간단한 예제 코드 [1] | 1 |
11887 | 정성태 | 5/8/2019 | 23055 | .NET Framework: 829. C# - yield 문을 사용할 수 있는 메서드의 조건 | |
11886 | 정성태 | 5/7/2019 | 20105 | 오류 유형: 534. mstest.exe 실행 시 "Visual Studio Enterprise is required to execute the test." 오류 [2] | |
11885 | 정성태 | 5/7/2019 | 17583 | 오류 유형: 533. mstest.exe 실행 시 "File extension specified '.loadtest' is not a valid test extension." 오류 발생 | |
11884 | 정성태 | 5/5/2019 | 22500 | .NET Framework: 828. C# DLL에서 Win32 C/C++처럼 dllexport 함수를 제공하는 방법 - 두 번째 이야기 | |
11883 | 정성태 | 5/3/2019 | 27500 | .NET Framework: 827. C# - 인터넷 시간 서버로부터 받은 시간을 윈도우에 적용하는 방법 | 1 |
11882 | 정성태 | 5/2/2019 | 23950 | .NET Framework: 826. (번역글) .NET Internals Cookbook Part 11 - Various C# riddles | 1 |
11881 | 정성태 | 4/28/2019 | 24065 | 오류 유형: 532. .NET Core 프로젝트로 마이그레이션 시 "CS0579 Duplicate 'System.Reflection.AssemblyCompanyAttribute' attribute" 오류 발생 | |
11880 | 정성태 | 4/25/2019 | 19797 | 오류 유형: 531. 이벤트 로그 오류 - Task Scheduling Error: m->NextScheduledSPRetry 1547, m->NextScheduledEvent 1547 | |
11879 | 정성태 | 4/24/2019 | 28732 | .NET Framework: 825. (번역글) .NET Internals Cookbook Part 10 - Threads, Tasks, asynchronous code and others | 2 |
11878 | 정성태 | 4/22/2019 | 23988 | .NET Framework: 824. (번역글) .NET Internals Cookbook Part 9 - Finalizers, queues, card tables and other GC stuff | 1 |
11877 | 정성태 | 4/22/2019 | 24187 | .NET Framework: 823. (번역글) .NET Internals Cookbook Part 8 - C# gotchas | 1 |
11876 | 정성태 | 4/21/2019 | 22485 | .NET Framework: 822. (번역글) .NET Internals Cookbook Part 7 - Word tearing, locking and others | 1 |
11875 | 정성태 | 4/21/2019 | 24299 | 오류 유형: 530. Visual Studo에서 .NET Core 프로젝트를 열 때 "One or more errors occurred." 오류 발생 | |
11874 | 정성태 | 4/20/2019 | 24322 | .NET Framework: 821. (번역글) .NET Internals Cookbook Part 6 - Object internals | 1 |
11873 | 정성태 | 4/19/2019 | 22987 | .NET Framework: 820. (번역글) .NET Internals Cookbook Part 5 - Methods, parameters, modifiers | 1 |
11872 | 정성태 | 4/17/2019 | 23858 | .NET Framework: 819. (번역글) .NET Internals Cookbook Part 4 - Type members | 1 |
11871 | 정성태 | 4/16/2019 | 21742 | .NET Framework: 818. (번역글) .NET Internals Cookbook Part 3 - Initialization tricks [3] | 1 |
11870 | 정성태 | 4/16/2019 | 20623 | .NET Framework: 817. Process.Start로 실행한 콘솔 프로그램의 출력 결과를 얻는 방법 | 1 |
11869 | 정성태 | 4/15/2019 | 26948 | .NET Framework: 816. (번역글) .NET Internals Cookbook Part 2 - GC-related things [2] | 2 |