2012-01-20 2 views
0

다른 배포 문제가 있습니다..Net 응용 프로그램 배포 : 내 컴퓨터에서만 실행됩니다.

내가 가지고있는 것 : 브라우저 캐시에서 이미지 파일을 복사하는 작은 Windows Forms 응용 프로그램.

문제 : 응용 프로그램이 내 컴퓨터에서 제대로 실행되지만 누군가 다른 컴퓨터에서 실행하려고 할 때마다 오류 메시지가 나타납니다 ("오류가 발생했습니다 .EXIT"및 Temp 폴더의 3 개 파일 목록 표시). . 이러한 파일의 문제에 대한 정보는 많지 않습니다.

다른 대상 프레임 워크 .Net 4.0, .Net 4.0 클라이언트 프로필, 3.5, 3.5 클라이언트 프로필 - 동일한 문제가 발생했습니다. OneClick 배포 및 설치를 시도했습니다. 프로젝트를 만들고 * .exe 파일을 복사하면 모두 동일한 문제가 발생합니다.

대상 컴퓨터에서 .Net 4.0 프레임 워크가 설치되어 있지만 차이는 없습니다.

앱이 레지스트리에서 읽는 중이지만 HKLM을 읽는 데 관리자 권한이 필요하다고 생각하지만 어쨌든 관리자로 실행 해 보았습니다.

Windows 7, XP SP3과 유사한 출력을 시도했습니다.

.Net 프레임 워크와 별개로 프로젝트에 대한 종속성은 없습니다.

외국 시스템에서 응용 프로그램이 정확히 어떻게되는지 확인할 수있는 제안 사항은 무엇입니까 ??

p.s. 소스 코드는보고를 원하는 경우, 여기에 있습니다 : http://cachecopy.codeplex.com/SourceControl/list/changesets

UPD : 제안들에 대한 감사합니다, 나는 다른 컴퓨터에서 Visual Studio를 설정하고 초 이내에 문제를 발견했습니다. 주소로 String.Empty 디렉토리를 열려고했습니다. 바보 나!

+0

앱이 작동하지 않는 다른 사람의 컴퓨터에 액세스 할 수 있습니까? 즉, 프로세스에 디버거를 연결하고 중단 된 부분을 볼 수 있습니까? –

+0

현재 다른 컴퓨터에 dev 환경을 설정하려고합니다. 디버거를 몇 가지 실행합니다 -) – trailmax

+0

전체 개발 환경을 설정하는 것보다 원격 디버깅을 사용하는 것이 훨씬 쉽습니다. 다행히 문제를 발견했습니다. –

답변

1

기본적으로 응용 프로그램 또는 양식로드 프로세스에서 일부 코드는 적절한 오류 처리없이 보호되거나 존재하지 않는 디렉터리/파일에서 파일 작업을 수행하려고합니다.

트릭은 파일 프로세스를 수행하고 특정 운영 체제/사용자 이름에서 분리하기 전에 응용 프로그램에서 경로/파일 이름을 참조하는 방법을 파악하는 것입니다.

모든 파일 시스템 액세스 코드에서 정확한 위치를 파악하는 데 도움이되는 사용자 지정 오류로 시도/캐치.

+0

숀이 제안하고있는 것과 같은 아이디어. 나는 그것에 가야 할 것이다. 감사! – trailmax

2

... ProcMon의 직업과 같은 소리입니다. 앱을 시작하는 동안 컴퓨터에서 실행하고 exe 이외의 모든 것을 필터링합니다. 그러면 모든 파일 시스템 및 레지스트리 활동이 표시됩니다. 사용 권한 문제로 인해 결과 열에서 액세스가 거부되거나 항목이 누락 된 경우 경로를 찾을 수없는 항목이 표시됩니다.

+0

건배, 나는 그것에 가야한다 – trailmax

2

어떤 시점에서 다른 컴퓨터에없는 파일을 참조 할 수 있습니까? 예를 들어 'C : \ MyFile'?

+0

좋은 지적! 내가 풀어주기 전에 모든 로컬 경로를 확인하고 제거했습니다. 다시 확인하겠습니다. 제안에 감사드립니다. – trailmax

+0

문제 없어요 :) 당신이 그것을 소트하게되기를 바랍니다! –