요즘은 응용프로그램을 각 잡고 배포할 일이 없어서 신경 쓰지 않았지만...... 사실 배포 시 참조되는 DLL을 구분해야 합니다. 1. 개발용 DLL과 배포용 DLL 내부에서 만든 DLL인 경우 편한 디버깅을 위해 디버깅용 정보가 들어있는걸 쓰고 배포 시에는 릴리즈용 DLL을 씁니다. 테스트용 DLL을 만들어 봅시다. 2. 그냥 하면 어떻게 되는가? 이제 일반적인 참조방식으로 어떻게 되는지 확인해 봅시다. 2-1. 프로젝트 참조 이제 프로젝트 참조를 한 프로젝트에서는 어떻게 돌아가는지 봅시다. 자동으로 잘 구분하여 참조합니다. 2-2. 직접 참조 DLL을 직접 참조한 프로젝트는 어떤지 확인해 봅시다. 당연히 직접 참조한 DLL만 따라가는 것을 볼 수 있습니다. 그렇다면 디버그와 릴리즈를 어떻게 구분하느냐..
윈폼에서 다국어 처리 시 컨트롤에 자동으로 다국어를 바인딩시킬 수 있습니다. [.Net] 다국어(멀티랭귀지, Multilanguage) 구현 [.NET 5] 리소스(Resource)파일을 이용한 다국어 처리 [.NET] WinForm에서 자동으로 바인딩되는 다국어 처리 1. 개념 이해하기 자동으로 바인딩 되는 방식은 폼(Form) 단위로 관리됩니다. 'Language' 속성을 변경하면 자동으로 해당 언어-국가 코드에 맞게 '.resx'파일이 생성됩니다. 리소스(Resource)에서 다국어 처리할 때와 마찬가지로 '.resx'파일에 다국어 정보가 들어가게 되고, 설정된 현지화 정보에 따라 자동으로 처리됩니다. 2. 폼(Form)에 현지화(Localizable) 처리 폼의 속성에 'Localizable'를 ..
.NET에서 리소스(Resource)파일을 이용한 다국어 처리는 오래된 방식입니다. 간단하게 구현하는 방법을 알아봅시다. [.Net] 다국어(멀티랭귀지, Multilanguage) 구현 [.NET 5] 리소스(Resource)파일을 이용한 다국어 처리 [.NET] WinForm에서 자동으로 바인딩되는 다국어 처리 1. 리소스(Resource) 파일 만들기 이 프로젝트에서는 'Resource' 폴더에 파일을 만듭니다. 프로젝트에 어느 위치에 있어도 참조하는 데 문제는 없습니다. 추가 > 새 항목 > 리소스 파일(Resources File) 을 추가합니다. 기본 언어는 언어-국가 코드가 없는 파일명으로 만들어야 합니다. 나머지 추가된 언어들은 언어-국가 코드를 넣어 만듭니다. 이 프로젝트에서는 - LangS..
예전에 비주얼 스튜디오에서 생성한 프로젝트는 빌드하면 자동으로 버전이 증가하는 기능이 있었습니다. 근데 이 기능이 어디로 사라진 거지??? 1. 기능이 없어진 이유 결정적 버전 관리라를 개념이 적용되면서 자동증가기능이 제거되었습니다. 버전을 관리하는데 같은 버전은 빌드하든 뭘하든 같은 놈으로 취급한다.... 이런 개념입니다. (참고 : MSDN - 코드 생성을 제어하는 C# 컴파일러 옵션 : 결정적) 앵? 원래 그거 구분해서 썼던 거 아닌가????? 라고 하시는 분을 위해! 만약 전체변수 하나 수정해서 배포했다고 하면.. 기존 버전 사용자도 상관 그냥 써도 되고 새 버전 받은 사람도 상관없이 써도 된다면 굳이 판올림을 하지 않고 배포를 해도 됩니다. 이런 경우 자동증가를 켜두었다면 또 버전이 달라집니다...
프로젝트 속성이나 'AssemblyInfo.cs' 파일을 만지 다보면 볼 수 있는 오류입니다. 1. 원인 'AssemblyInfo'가 생성될 때 중복되는 항목이 있으면 발생합니다. 문제는 이것이 UI 만지다가 그럴 수도 있고 직접 수정하다가 그럴 수도 있다는 것이죠. 간단한 해결방법은 중복되는 항복을 제거하면 되는데........ 자동생성되면서 기존 것과 충돌 나는 거면....? 2. 해결 방법 솔루션 탐색기 > 오른쪽 클릭 > 프로젝트 파일 편집 으로 들어가서 "*.csproj" 파일을 열어 줍니다. "false"를 추가해 줍니다. 1 2 3 false Colored by Color Scripter cs 이제 빌드하면 오류가 사라집니다. 마무리 프로젝트 파일을 편집하는 건 할 때마다 간 떨리는 일입니다..
'.NET Core 3'에서 클래스 라이브러리(Class Library)를 사용할 때 사용할 수 있는 'ASP.NET Core MVC'의 버전은 3.1.0 버전입니다. *2020-08-10 기준 1. '.NET Core 2'에서는 어떻게 했는가?'.NET Core 2'에서는 'ASP.NET Core MVC'를 참조하려면 누겟에서 찾아서 설치해야 합니다. 그런데 업데이트가..... 쓰려면 쓸 수는 있는데 버전이 낮아서 생기는 문제들이 좀 있습니다. '.NET Core 3'에서도 사용하려면 사용 할 수 있습니다. 2. '.NET Core 3 MVC'는 어디 있는가?'.NET Core 3'에서는 프래임웍에 포함되어 있습니다. 그렇다는 건 그냥 참조하면 되는데.... 자동으로 참조가 되지 않습니다. 이게 프레임..
크로미움을 참조한 윈폼 프로젝트를 배포했더니 실행도 안 되고 에러 메시지도 없이 반응이 없습니다. 그래서 이벤트 뷰어를 봤더니.... 1. 에러 원인원래 'System.IO.FileNotFoundException'에러는 파일을 찾지 못한 경우 발생합니다.하지만..... 크로미움을 참조할 때 사용하는 'CefSharp'를 참조했는데 'VC++ 2013/2015 Redistributable Package'가 설치되지 않은 경우에도 발생합니다.(참고 : github CefSharp - Frequently asked questions ) 2. 해결방법너무나 당연하게도 'VC++ 2013/2015 Redistributable Package'를 설치하면 됩니다.다운로드 : Microsoft Visual C++ 20..
비트 연산을 하면 한 변수에 여러 옵션을 넣었다 뺐다 하는 효과를 줄 수 있습니다. 이 비트 연산을 열거형 맴버로 한다면 직관적으로 특정 옵션이 들어 있는지 확인하는 것이 가능하죠. 많은 언어가 열거형 맴버를 비트 연산에 활용할 수 있습니다. 닷넷(.Net)에서 어떻게 사용하는지 알아봅시다. [.NET] 열거형(Enum)을 클래스(Class)로 변환 하기 [.NET] 열거형 맴버(enum)의 플래그(Flags)와 비트(bit) 연산 1. 원리 이해하기 비트 연산의 원리를 간단하게 알아봅시다. 열거형 멤버의 비트 연산은 선언된 값의 합이 다른 멤버의 값과 절대로 겹치지 않는다는 것을 전제로 진행됩니다. (참고 : MSDN - 열거형 디자인) 아래와 같이 열거형 멤버를 선언합니다. 12345678910111..
C# 클래스(Class)나 모델(Model)을 Json파일로 저장했다가 다시 불러서 모델에 바인딩하기는 쉽습니다. 한단계씩 따라 해 봅시다. 1. 준비 누겟(Nuget)에서 'Newtonsoft.Json'를 찾아 설치해 줍니다. 'TestData001.cs' 클래스를 생성합니다. 1 2 3 4 5 6 7 8 9 10 /// /// 테스트용 모델1 /// public class TestData001 { public string StrData1 { get; set; } public string StrData2 { get; set; } public int IntData1 { get; set; } public int IntData2 { get; set; } } Colored by Color Scripter cs..
저는 자마린 프로젝트에서 발생했지만 기존 프로젝트에 닷넷 스탠다드(.NET Standard)로 프로젝트를 만들면 발생할 수 있는 오류가 아닌가 생각됩니다. 1. 오류 발생 자마린 프로젝트에서 PCL이 닷넷 스탠다드(.NET Standard)로 표준화되었습니다. 그래서 기존에 만들었던 PCL을 닷넷 스탠다드로 바꾸는 작업을 하고 있는데...... 'EmbeddedResource' 중복 항목이 포함되었습니다. .NET SDK에는 기본적으로 프로젝트 디렉터리의 'EmbeddedResource' 항목이 포함됩니다. 프로젝트 파일에서 이러한 항목을 제거하거나, 프로젝트 파일에 해당 항목을 명시적으로 포함하려면 'EnableDefaultEmbeddedResourceItems' 속성을 'false'(으)로 설정할 수..