음 아마 비둘기보단 똑똑할꺼야
준돌 Jundol / 2017.12.20 17:33 / Visual Studio 2015

닷넷 참조프로젝트 추가하는 방법

제목은 참조프로젝트 추가하는 방법이지만 다중프로젝트 설정방법이라고 읽어야 하겠다.

기본 닷넷에서 Model View Controller 로 나누어서 개발하려고 할 때가 있다.

하나의 솔루션에 3개의 프로젝트를 추가하는건데

웹프로젝트 하나 C# 프로젝트 두개를 생성하여 C#프로젝트 두개는 각각 모델과 컨트롤러를 담당한다.

여기서 C#프로젝트를 추가하고 그냥 빌드를 하게 되면

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 CS5001 프로그램에는 진입점에 적합한 정적 'Main' 메서드가 포함되어 있지 않습니다. ORL_Common C:\Users\xxxx\Documents\Visual Studio 2015\Projects\ORL_TEST\ORL_COMMON\CSC 1 활성

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 CS0006 'C:\Users\DA_JUNK\Documents\Visual Studio 2015\Projects\ORL_TEST\ORL_COMMON\bin\Debug\ORL_COMMON.exe' 메타데이터 파일을 찾을 수 없습니다. ORL_BizDac C:\Users\xxxx\Documents\Visual Studio 2015\Projects\ORL_TEST\ORL_BizDac\CSC 1 활성

위 두개와 같은 오류를 발생시킨다.

위와같은 문제는 프로젝트의 출력형식에서 윈도우응용프로그래밍으로 설정이 되어있기 때문이다.

아래 사진과 같이 바꿔주도록 하자.

클래스 라이브러리로 바꾼다.

그래야 빌드가 정상적으로 된다.

아래사진 처럼.

 

준돌 Jundol / 2015.05.13 15:38 / Visual Studio 2012



할일 없이 소스분석을 하던 도중 이런 메시지가 뜬다.

순간 뭐지.... 이생각이 제일 먼저 들었다.

예를 눌러야되나 아니오를 눌러야되나... 일단 예를 눌러보았다.

뭐 바뀌는건 없는 것같은데... 혹시 몰라서 SVN 상태를 보니 뭔가 바뀌었단다!

그래서 커밋되어있는 소스와 비교하려는데




잉?????????????????????????

텍스트는 같은데 바이너리가 다르다고????????????


일단 진정하고 정규화 warning 메시지부터 찾아보도록 하자


Error Message: The line endings in the following file are not consistent.


Cause:

This dialog box is not from SourceAnywhere Standalone. It is a Visual Studio warning. It occurs when the file you are loading contains a mix of Windows standard and non-standard line-endings.

Resolution:

You can ignore EndOfLine by disabling the Check for consistent line endings on loadoption in the Documents page (VS 2008 Tools->Options->Environment->Documents).

출처 :  http://kb.dynamsoft.com/questions/323/Error+Message%3A+The+line+endings+in+the+following+file+are+not+consistent.+


에러메시지에 대한 원인과 해결책을 나타내주고 있다.

해결 방법은 일단

도구 -> 옵션 -> 문서탭



로드할 때 줄 끝 일관성 검사 를 해제하면 된다고는 한다. 해제하니 다음 로드할때는 나타나지 않는다.

여기서 끝! 하면 너무 쉬워서

windows(CR LF) 에 대해서 검색해보았다.

새줄문자(줄바꿈문자 개행문자 등등 여러가지로 표현 되는 것 같다.)

CR : 캐리지 리턴(carriage return, CR, '\r', 0x0D) - 프린터에서 실제 인쇄를 수행하는 장치가 한 줄의 끝에서 시작 위치로 돌아가는 것을 뜻함.
LF : 라인피드 (line feed, LF, '\n', '0x0A') - 프린터에서 종이가 한 줄씩 인쇄되며 나오는 것을 뜻함.

ACSⅡ 시스템에서 새줄문자로 사용하였다고 한다. 


ACSⅡ의 새줄문자

 LF

 멀틱스, 유닉스, 리눅스, 제닉스, AIX, OS X, FreeBSD 

 CR + LF

 DEC TOPS-10, CP/M, MP/M, 도스, OS/2, 윈도, 심비안 OS, 팜 OS 

 CR

 콤모도어 8비트 머신, TRS-80, 애플 Ⅱ, 맥 OS(버전 9이하), OS-9 

 RS

 POSIX 이전의 QNX 


출처 : 위키피디아

http://ko.wikipedia.org/wiki/%EC%83%88%EC%A4%84_%EB%AC%B8%EC%9E%90



아마도 전임자 분께서 다른 운영체제에서 해당 소스파일을 개발하셨거나 중간에 누군가가 다른 운영체제에서 편집하고 커밋해놓은 것 같다.


스택오버플로우(http://stackoverflow.com/questions/5665217/do-i-want-normalized-line-endings)를 보니 정규화 다이얼로그 박스가 나올 경우 대부분의 정답은 "YES"를 누르는게 맞다고 하니 정규화 시키는게 좋다는 것 같다.


© 2015 Jundol in 음 아마 비둘기보단 똑똑할꺼야
Designed by DH / Powered by Tistory
134 / 109 / 113,582