본문 바로가기

컴퓨터 이야기/Visual Studio

빌드 시 참조된 파일들이 지워진다면 (특정 폴더에 빌드된 dll 파일들을 모아놓고 해당 파일을 참조하는 프로젝트가 하나 있다고 가정하자.) MS 제품이 text로 이루어진 설정 파일들로 인해서 프로젝트 설정파일 혹은 솔루션 설정 파일들을 메모장으로 열어 수정하는 일이 많은데, 이런 경우도 마찬가지입니다. 결국 솔루션 파일을 열어서 참조에 대한 내용을 넣어줘야 합니다.그렇지 않으면 빌드를 하고 저장을 하고 VS를 재실행을 해도 똑같이 버그가 발생합니다. (VS2015 기준)만약 솔루션 파일을 수정한다면 dll에 대한 상세한 정보까지 넣어야 하기 때문에 찾아서 넣거나 애초의 솔루션을 활용하는 것이 낫습니다. 애초에 솔루션 파일이나 프로젝트 설정 파일을 손을 대지 않는 상황을 만드는 것이 가장 좋습니다. 더보기
System.BadImageFormatException 에러가 날 때 보통 그렇지는 않지만 WPF에서 윈폼의 어떤 메서드를 사용하는 경우에 (사용 주체가 꼭 WPF 가 아니더라도) 참조로 필요한 System.Windows.Form 가 있더라도 애매한 에러 가는 경우가 있는데 그 경우가 바로 An unhandled exception of type 'System.BadImageFormatException' occurred in PresentationCore.dll 에러다. 딱봐도 뭔가 그러주는 것을 담당하는 닷넷의 공통 프레임웍에서 에러가 나는 것으로 볼 수 있는데, 해당 내용은 사용하는 주체가 되는 프로젝트나, 참조가 되어지는 윈폼이나 같은 형식으로 빌드를 해주면 된다. 두 프로젝트의 해당 빌드 Platform target을 확인해보면 된다. 서버와 클라이언트의 경우라면 A.. 더보기
[WPF]ListBox 안에 Expander 사용할 때 하나만 펼치게 하기 WPF에서 Expander를 ListBox의 DataTemplate에 넣어서 사용하게 되면ListBox.SelectionChanged 이벤트가 잡히지 않습니다. 그래서 구글링하면 다음과 같은 stackoverflow 글을 볼 수 있습니다. http://stackoverflow.com/questions/1183326/wpf-listbox-expander-events 결론은 다음과 같이 xaml 코드에서 처리하면 쉽게 됩니다. 머리를 굴리지 않아도 간단하게 되니 더욱 깔끔합니다. IsExpanded="{Binding IsSelected,Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}" 더보기
체크아웃 후 로컬에 없는 파일을 TFS에서 다시 가져오는 방법 프로젝트에 추가 되어있는 이미지나 파일이 없으면 빌드 할 때 에러가 납니다.! 표시가 나면서 파일이 없다고 표시가 되어있는데, 이 때 프로젝트 탐색기에서 삭제를 하고 다시 추가하려고 하면로컬에 해당 파일이 없기 때문에 추가할 수가 없습니다. 이 때 TFS에서 파일을 다시 받는 방법입니다. TFS 탐색기에서 해당 파일을 Undo를 하고 난 후에 다시 체크아웃을 하게 되면 로컬에 없던 파일이 들어가 있는 것을 확인할 수 있습니다. :) 끝! 더보기
SQL 다중 행과 이중 쿼리 예제. 별 다른 이야긴 아니지만 늘 까먹을 것 때문에 이렇게 적어놓는 의미도 있네요. 암. Update dbo.new set dbo.new.number = (select number from dbo.old where dbo.old.word = dbo.new.word) from dbo.new 위 구문이 old테이블과 new 테이블에서 특정 컬럼을 비교햐여 매치가 되는 값에 따라 old.number라는 컬럼의 다중 행의 값을 new 의 number라는 컬럼에 싹 넣는 것입니다. 이것이 제대로 된 쿼리인데, 오류를 범했던 것은 다음과 같습니다. Update dbo.new set dbo.new.number = (select (select number from dbo.old where dbo.old.word = dbo... 더보기
DateTime 값 사이 개월 수 구하기 http://stackoverflow.com/questions/1525990/difference-in-months 이 링크에 아주 잘 나와있습니다. 헤헷 더보기
WPF g.cs와 같은 메타 파일 using문 관련 참조 에러 해결 WPF나 실버라이트로 개발을 하다보면, 분명 쓰지 않는 참조인데 자꾸 에러가 나는 부분이 생길 때가 있습니다. 대부분은 그렇듯이, 당연히 착각을 하는 부분이 많고요.. 이 에러의 특징은, 아무리 저장을 눌러도 수정된 부분이 반영이 안된다는 것이예요. 보통 이런 증상은.. 기존에 참조를 했던 프로젝트의 네임스페이스가 리펙토링으로 바뀌지 않았을 때 에러가 날 때가 있는 경우입니다. 메타 파일의 using 관련 참조 에러를 쉽게 해결하기 위해서는 해당 using문에 넣은 네임스페이스를 갖는 임시 프로젝트를 생성하여 참조를 추가 해주는 것입니다. 왜냐면 기존의 네임스페이스로 다시 바꿔주면 햇갈릴 필요성이 있고, 그렇다고 리펙토링으로 돌려버리자니, 솔루션의 크기가 커진 상황일 경우에 VS가 알아서 리펙토링을 해주.. 더보기
웹 서비스 관련 ArrayOfInt, ArrayOfString 등의 문제 실버라이트를 개발하다 보니 웹 서비스를 많이 사용하게 되는데, 한 번은 웹 서비스로 전달하는 파라미터를 ArrayOfString 써서 개발을 하고 보니 잘되다가 웹 서비스 업데이트를 하고 나서 에러가 나는 겁니다. 자세히 보니까, 로컬로는 잘 인식을 하는데 로컬이 아닌 웹 서비스를 참조를 하게 되면 그 에러가 나더라고요. 물론 별 상관없는 우연적인 이야기입니다만.. 어쨌든, 해결책은 다음과 같습니다. 해당 웹서비스 데이터가 있는 폴더의 Reference.cs 파일을 열어 ArrayOfString 이 놈들을 선언을 해주고 사용하면 됩니다. [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttr.. 더보기