경력이 쌓여도 가끔 초보적인 실수를 하게 되는데...... 이 오류가 대표적인 실수로 인한 오류입니다. 1. 오류 오류의 내용은 다음과 같습니다. 파일이나 어셈블리 '[네임스페이스]' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 지정된 파일을 찾을 수 없습니다. 이 오류가 나는 대부분의 경우는 네임스페이스와 클래스(혹은 인터페이스 같은 것들)의 이름이 겹치는 경우입니다. 물론 무조건 겹친다고 에러가 나진 않습니다. 그래서 'ASP.NET'는 빌드타임 에러가 아닌 런타임에러가 나는듯합니다. 2. 해결 방법 이름을 바꾸면 됩니다. 끝. .... ..... 너무나 당연한 이야기지만 일반적인 설계에서는 오브젝트 이름과 네임스페이스 같은 것들이 겹치게 하지 않습니다. 이 오류 자체..
1. 증상 누겟(Nuget)에서 라이브러리를 받고 나서 빌드하니 이런 에러가 납니다. 어셈블리에서 "CodeTaskFactory" 작업 팩터리를 로드할 수 없습니다. codetaskfactory could not be found 하..... 2. 해결 방법 일반적으로 이 오류는 잘못된 참조 때문에 발생합니다. 보통은 뭐가 잘못됐는지 파일 이름이 나오기 마련인데 이 에러로 퉁치는 경우도 있습니다. ㅎㅎㅎㅎ 누겟에 의해 참조가 추가된 경우 1) 종속된 참조가 자동으로 추가되지 않거나 2) 옛날 버전을 참조해서 흔히 나오는 에러 갔습니다. 이런 경우 누겟 참조에 의해 발생했다면 해당 참조를 업데이트하는 것만으로도 사라지기도 합니다. 다른 버전으로 업데이트를 한 다음 다시 원하는 버전으로 업데이트해도 해결됩니다..
.net에서 소켓 프로그래밍을 하려면 몇 가지 선택사항이 있는데 그중 하나가 'SocketAsyncEventArgs'입니다. 전에 '[.Net] SocketAsyncEventArgs - 큰 데이터(Large Data) 전송할 때 생기는 문제'라는 글에서 버퍼크기보다 큰 데이터가 오는 경우 어떤 일이 발생하는지 다루었습니다. (참고 - [.Net] SocketAsyncEventArgs - 큰 데이터(Large Data) 전송할때 생기는 문제 ) 그렇다면 'SocketAsyncEventArgs'를 이용하여 큰 데이터(Large Data)나 연속 메시지(Continuous Receive)에 의한 리시브데이터 뭉침 현상을 어떻게 처리해야 하는지를 알아보겠습니다. 이 포스팅의 완성된 코드는 공개프로그램에서 확인할..
사실 대부분의 'OAuth'인증은 웹을 통해서만 하므로 애플리케이션이던 웹이던 처리에는 크게 차이가 없다는 게.... (제가 모르는 건인지 자료를 못 찾은 건지 ㅡ.-;;) 어찌 됐건 C#애플리케이션을 통해 네이버에서 'OAuth'로그인을 하도록 하겠습니다. 로그인이 잘되었는지 확인하기 위해 접근 토큰(Access Token, 액세스 토큰)을 발급받아 블로그의 카테고리를 조회해 보도록 하겠습니다. 0. 네이버 'OAuth'로그인 절차 애플리케이션에서 네이버 'OAuth'인증을 하기 위해서는 웹 브라우저를 사용할 수 있는 컨트롤이 필요합니다. 로그인 인터페이스가 웹으로만 되어 있으므로 웹 브라우저 컨트롤(C#에서는 'WebBrowser' 컨트롤)을 이용하여 사용자에게 네이버 로그인을 유도하고 로그인 결과를..
1. 증상 'NAudio'를 빌드하고 프로젝트에 참조로 넣고 돌렸더니.... 빌드 중인 프로젝트의 프로세서 아키텍처 "MSIL"과(와) "[빌드정보]" 참조의 프로세서 아키텍처 "x86"이(가) 일치하지 않습니다. 이 불일치로 인해 런타임 오류가 발생할 수 있습니다. 프로젝트와 참조 간의 프로세서 아키텍처를 정렬하거나 프로젝트의 대상 프로세서 아키텍처와 일치하는 프로세서 아키텍처를 포함하는 참조에 대한 종속성을 사용하는 것처럼 구성 관리자를 통해 프로젝트의 대상 프로세서 아키텍처를 변경하십시오. 아.... 이건 참조한 'DLL'과 사용하려는 플랫폼간 '플랫폼 대상'이 달라서 발생합니다.(64비트 전용이라던가 하는 문제) 2. 해결 방법 소스가 있다면 해당 'DLL'의 프로젝트 속성 > 빌드 > 플랫폼 대..
GDI+로 짧은 시간에 처리되는 그래프를 그리니까 개수가 늘어날 때마다 버벅거리는 게 너무 심해져서 OpenTK를 이용해볼까 해서 찾은 자료입니다. 참고 : OpenTK - Building a Windows.Forms + GLControl based application 1. 'OpenTK' 컨트롤 추가 하기 OpenTK에서는 윈폼(Winform)에서 사용이 가능하도록 컨트롤을 제공하고 있습니다. '도구 상자'에 구성요소를 추가해 봅시다. 1. 도구 상자의 빈 곳에서 오른쪽 클릭을 하고 '항목 선택'을 선택합니다. 2. '.NET Framework 구성 요소'에서 찾아보기를 누릅니다. 3. 다운로드한 OpneTK 라이브러리에서 'OpenTK.GLControl.dll'를 찾습니다. 4. 해당 파일을 엽니다..
다른 포스팅에서 'SocketAsyncEventArgs'를 사용하는 방법을 알아봤습니다. (참고 : [.Net] 'SocketAsyncEventArgs' 사용하기) 그런데 'SocketAsyncEventArgs'를 이용하면 이상한 현상이 있는데.... 설정된 크기 이상의 데이터를 보내면 리시브가 여러 번 오거나 데이터가 깨져서 오는 현상이 있습니다. (디폴트값이 8192byte였나 그럴 겁니다.) 이런 문제 때문에 큰 데이터(Large Data)를 보낼 수 없다는 것입니다. 그런데 말입니다. 몇 가지 테스트를 해보니 이게 문제가 아니고 제가 관련 정보를 못 찾아서 그런거 같습니다 ㅎㅎㅎㅎ (바보 된 거죠-_-;) 연관글 영역 1. 문제의 발견 한번 'SocketAsyncEventArgs'로 큰 데이터를 ..
닷넷(.Net)에서 열거형(Enum)은 자체로도 클래스(Class)와 비슷한 역할을 수행합니다. 그런데 열거형의 문제는 열거형 멤버를 직접 다루려면 손이 많이 간다는 것입니다. 우리는 객체지향(Object-Oriented Programming, OOP)을 통해 이런 손이 많이 가는 작업은 클래스를 만들어 캡슐화하여 처리하라고 배웠습니다. 그러니 열거형을 클래스로 변환해 봅시다. (Enum to Class) 연관글 영역 1. 클래스 만들기 닷넷에서 열거형은 구성이 잘되어 있어 형 변환도 쉽습니다. 그러니 이러한 작업을 해주는 클래스를 만들면 됩니다! 1-1. 데이터 저장용 클래스 상황에 따라서 구조체(struct)를 사용해도 되지만 형 변환과정에서 무언가 더 필요할 수 있으니 모델로 만들어 줍니다. ///..
유튜브에 올라와있는 'OpenTK' 플랫폼 튜토리얼을 따라하는 포스팅입니다. 'OpenTK'는 'OpenGL', 'OpenCL', 'OpenAL'가 합쳐진 C#랩퍼입니다. 0. 원본 OpenTK Platformer Tutorials: Part 3 - The View Class 뷰클래스를 만들어 보는 화면을 제어 합니다. 뷰클래스의 역할은 카메라와 같습니다. 1. 'View' 클래스 만들기 뷰를 다루기위한 클래스를 만들어 봅시다. 이 클래스에서는 카메라의 위치와 확대 배율, 각도를 제어 합니다. class View { /// /// 위치 /// public Vector2 position; /// /// 각도, + = 시계방향 /// public double rotation; /// /// 확대 /// 1 ..
유튜브에 올라와있는 'OpenTK' 플랫폼 튜토리얼을 따라하는 포스팅입니다. 'OpenTK'는 'OpenGL', 'OpenCL', 'OpenAL'가 합쳐진 C#랩퍼입니다. 0. 원본 OpenTK Platformer Tutorials: Part 2 - Loading and Drawing a Texture 텍스처를 불러오고 불러온 텍스처를 화면에 그리는 방법. 1. 프로젝트에 리소스 추가하기 이 부분은 C#의 기초라고 할 수 있습니다. 프로젝트에 'Content'폴더를 만들고 텍스처로 사용할 이미지를 넣어 둡니다. 추가한 이미지를 클릭한 후 속성창에 빌드 작업 : 없음 출력 디렉터리로 복사 : 변경된 내용만 복사 로 변경 해줍니다. 이제 프로젝트를 실행해보면 디버그 폴더에 'Content'폴더가 만들어지고 ..