개발pc에서는 정상으로 작동이 되나 사용자에게 배포 후에 실행을 하였더니 다음과 같은 오류가 발생하였다.
구글링에 별의별 짓을 다 해봤지만... 원인은 알 수가 없었다.
플랫폼변경하여 디버깅, 다른pc에서 빌드, 파일의 재배포 등등
구글링 결과 이와 같은 문제를 격는 사람이 많은 것 같았다.
사용자 pc에서j 메세지를 가져올 수 없어 사진 찍어서 가져왔다.
구글링해서 찾은 비슷한 에러 메세지 문구.
Stopped working
Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: XXXXXXXXXXX.exe
Problem Signature 02: 1.0.0.1
Problem Signature 03: 4f338fd9
Problem Signature 04: XXXXXXXXXXX
Problem Signature 05: 1.0.0.1
Problem Signature 06: 503f01b1
Problem Signature 07: 1b2b
Problem Signature 08: 17
Problem Signature 09: System.IO.FileLoadException
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1042
하루를 고생하며 알아낸 것이 try catch엿다. ㅡㅡ;
이렇게 해놓으면 에러 발생시 메세지를 자세히 보여준다. ㅜㅜ
상당히 허무하게 발견하였다.
static void Main(string[] args)
{
try
{
Application.Run(MainForm);
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
}
다음이 오류의 원인이었다.
Infragistics DLL을 로드 할 수없다는 것이었다!!!!
확인해보니... 실제로 버전의 용량이 달랐다. ㅜㅜ
그러니 개발자 pc에서는 정상 작동을 한것이다..
Infragistics DLL도 같이 배포를 하였으나 잘못된 버전이 배포가 된 것이다.
개발자 pc에서는 정상 작동이 된 이유는 실행 파일이 있는 경로에 잘못 된 DLL이 있어도 제대로 된 DLL이 PC에 설치되어 있으니
그걸로 실행이 됐던 것이다.
하지만, 실 사용자 PC에는 다른 버전의 DLL이 있고 제대로된 DLL이 없으니 찾을 수 없었던 것이다...
그러니 FileLoadException에러가 나올 수 밖에...
'C#' 카테고리의 다른 글
ftp에서 파일 다운로드 하기(ftp file download) (1) | 2015.12.23 |
---|---|
text file에 텍스트 추가하기(File.AppendText) (0) | 2015.12.23 |
Application.DoEvents() (0) | 2015.11.04 |
DataSet의 데이터 DB 저장시 수정, 삭제, 신규 구분하는 방법 (0) | 2015.09.04 |
윈도우 인증 사용하여 DB 접속 (0) | 2015.08.31 |
댓글