코드를 실행하기 전에 VB.NET 응용 프로그램이 충돌하는 원인은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/443384

  •  22-07-2019
  •  | 
  •  

문제

내 VB.NET 응용 프로그램은 개발 PC에서 제대로 컴파일, 설치 및 작동합니다.

그러나 설치 패키지를 다른 곳에서 가져오면 정상적으로 설치되지만 코드가 실행되기 전에 충돌이 발생합니다.

오류는 "문제가 발생하여 종료해야 합니다..."입니다.

외부 파일에 대한 모든 참조를 제거했습니다.아이콘 파일 등

로컬 DLL이 하나만 있고 참조가 괜찮은 것 같습니다.

이 문제를 일으킬 수 있는 다른 문제는 무엇입니까?

감사해요!존

업데이트:1대의 PC에서 MDAC를 다시 설치하면 문제가 해결되었습니다.그러나 대부분의 클라이언트는 XP이므로 이는 도움이 되지 않습니다.

일부 Windows XP 노트북에서는 여전히 동일한 오류가 발생합니다.

도움이 되었습니까?

해결책

자세한 내용은 이벤트 로그 (실행 상자에서 "EventVWR"로 시작)를 볼 수 있습니다.

다른 팁

명백한 질문을해서 죄송하지만 대상 PC에 .NET 런타임이 설치되어 있습니까?

유효하지 않은 app.config 파일로 전에 이것을 보았습니다. 방금 게시 한 오류가 주어지면 컴퓨터의 매니페스트 파일도 확인할 수 있습니다.

두 가지 가능성:

이는 vb.net이 초기화 중에 오류를 발견할 때 발생하는 오류 유형입니다.예를 들어 다음과 같은 경우

dim iClass as new myClass

시작 양식이나 모듈의 전역 영역(하위 또는 기능 앞)에 있고 인스턴스 iClass를 생성하는 동안 오류가 발생하면 문제를 찾을 수 있는 단서 없이 상당히 쓸모 없는 오류 메시지가 표시됩니다.

초기화 중에 컨트롤 이벤트의 잘못된 실행으로 인해 _load 실행이 시작되기 전에 이벤트 핸들러에 오류가 발생하는 경우에도 이러한 유형의 오류가 발생할 수 있습니다.Microsoft에 따르면 이 이벤트 발생은 "설계에 따라" 가끔 발생합니다._load가 실행된 후 핸들러에게 실행해도 안전한지 알려주는 플래그를 사용하고 디자인 타임에 할당된 컨트롤 속성을 신중하게 사용하면 이를 방지할 수 있습니다.

OK- 이벤트 뷰어가 도움이되었습니다. 제 생각에는.

설치 중에 일부 참조가 발견되지 않은 것 같습니다.


다음은 지난 6 개의 항목입니다 ...

Faulting application pa.exe, version 2.0.1.26594, stamp 496e0437, faulting module kernel32.dll, version 5.0.2195.6946, stamp 40d78cce, debug? 0, fault address 0x0002bbf3. 

Detection of product '{3CA9D9FD-E8CD-4B73-8053-8C406ED8CB28}', feature 'DefaultFeature' failed during request for component '{ACA3C479-D7C7-902C-092A-E6635AD9A8B1}' 

Detection of product '{3CA9D9FD-E8CD-4B73-8053-8C406ED8CB28}', feature 'DefaultFeature', component '{7D04E12E-2803-6F47-E11C-B8146C27E61B}' failed.  The resource 'C:\Program Files\pa\pa-update.exe' does not exist. 

Faulting application pa.exe, version 2.0.1.26594, stamp 496dffb9, faulting module kernel32.dll, version 5.0.2195.6946, stamp 40d78cce, debug? 0, fault address 0x0002bbf3. 

Detection of product '{3CA9D9FD-E8CD-4B73-8053-8C406ED8CB28}', feature 'DefaultFeature' failed during request for component '{ACA3C479-D7C7-902C-092A-E6635AD9A8B1}' 

Detection of product '{3CA9D9FD-E8CD-4B73-8053-8C406ED8CB28}', feature 'DefaultFeature', component '{30A51F7D-D0DA-E436-F48F-1092ECE7858D}' failed.  The resource 'C:\Program Files\pa\pa-common.dll' does not exist. 

다른 시스템에 설치된 것보다 .NET 플랫폼의 더 높은 버전을 목표로 할 수 있습니까?
합병증 탭에서 "My Project"에서 프로젝트의 대상 프레임 워크 (vs.2008)를 확인할 수 있습니다. 고급 컴파일 옵션을 클릭하십시오 ...
고급 컴파일러 설정 대화 상자의 하단에는 각 프레임 워크가있는 드롭 다운 목록이 있습니다.
클라이언트 시스템에서 "프로그램 및 기능"제어판 (Vista) 또는 XP에서 "프로그램 추가 및 제거"에서 .NET 버전을 확인할 수 있습니다.

.NET에 대해 모르지만 Delphi에서는 IDE의 하나의 인스턴스를 사용하여 두 번째 인스턴스를 디버깅 할 수 있습니다. 그런 다음 스타트 업에서 문제를 디버그하기 위해 (적절한 디버깅이 시작되기 전에) 디버깅을 위해 IDE A를 IDE B에 첨부 한 다음 IDE B에서 응용 프로그램을 실행하면 IDE에서 코드가 열리면 문제에 대한 단서가 줄 수 있습니다.

이상하게 행동하는 타사 DLL이 있습니다. 배포에서 자동 포함 대신 포함하도록 변경하십시오.

나는 오늘 나에게 이런 일이 일어났다. 내 버그는 다른 프로그램에서 프로그램을 복사하고 요구 사항을 충족하도록 수정했다는 것입니다. 문제는 하나의 프로그램이 시작되었을 때 두 번째 프로그램이 오류없이 충돌하는 것이 었습니다. 어셈블리 정보를 변경해야한다는 것을 알았습니다. 응용 프로그램 이름, 어셈블리 제목을 변경하고 고유 한 안내서를 만들었습니다. 일단 그렇게하면 두 프로그램을 동시에 실행할 수있었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top