2010-04-17 2 views
32

Visual Studio 솔루션에 일부 설치 프로젝트가 있습니다 (다른 프로젝트 유형 -> 설치 및 배포 -> 설치 프로젝트). 이 프로젝트에는 프로젝트 출력과 같은 InstallationCore라는 설치 클래스가있는 또 다른 라이브러리 유형 프로젝트가 있습니다. 사용자 작업에서는 InstallationCore 설치 관리자의 설치 및 제거 기능을 호출합니다.설치 프로젝트에서 DragDrop 등록이 성공하지 못했습니다.

InstallationCore에는 사용자와 상호 작용할 수있는 Windows 양식이 있습니다. 양식에서는 트리 뷰에서 텍스트 상자로 끌어서 놓기 텍스트에 끌어서 놓기 기능을 사용합니다.
그러나 라인 :

txbUserName.AllowDrop = true; 

나는 JIT 디버거의 오류는 :

처리되지 않은 예외가 발생했습니다


끌어서 놓기 등록
System.InvalidOperationException를 성공하지 못했습니다 : 끌어서 놓기 등록이

를 성공하지 못했습니다

그런 다음 긴 스택 추적.
중요한 것은 테스트 프로젝트에서 Installer 함수를 실행하면 오류가 발생하지 않고 모든 것이 정상적으로 작동한다는 것입니다. .msi 패키지를 실행하는 경우에만 오류가 발생합니다.

제안 사항?

+3

원인은 여기에 설명되어 있습니다 : http://stackoverflow.com/questions/135803 그러나 솔루션을 설치 프로젝트에 적용 할 수 있는지 확실하지 않습니다. – dtb

+0

+1 @ dtb, 이것은 완전히 정확합니다. 여기에는 가능한 해결책이 있습니다 (http://www.ozcandegirmenci.com/post/2010/08/Visual-Studio-Setup-Project-OLE-Call-And-Dialog-Show-Support.aspx). – ssamuel

답변

0

BIN 디렉토리를 청소하십시오.

0

해결책 디렉토리에서 모든 Obj 폴더를 삭제하고 솔루션을 다시 작성하십시오. 기억하지 마십시오 단지 재구성 만 빌드하십시오. 빌드는 마지막으로 성공한 빌드에서만 새로운 변경 사항을 준비하기 때문에 다시 빌드 옵션을 사용하십시오.

0

빌드 : 파일을 빌드하고 bin 폴더에 있는지 여부에 관계없이 모든 파일을 덮어 쓰거나 덮어 씁니다.

재 빌드 : - 수정이없는 경우 기존 파일을 사용하십시오.

청소 : - 빈 위치에서 모든 파일을 삭제합니다.

권장 사항이 필요없고 관련 파일을 만들 필요가 없으면 항상 깨끗하게 만든 다음 다시 빌드하십시오. 그렇지 않은 경우 항상 다시 빌드를 사용하십시오.

RUN (Windows 버튼 + R)에서 Temporary Folder (RUN의 % temp %에 입력)로 이동하십시오. .NET 임시 파일과 관련된 폴더가 있습니다. 삭제할 수없는 경우 삭제하십시오. 그런 다음 Visual Studio를 닫은 다음 삭제를 시도하십시오. 이것은 응용 프로그램을 빌드하거나 다시 빌드 할 때마다 만들어지며 때때로 문제가 발생합니다.

1

이 문제를 일으키는 멀티 스레드가 있습니까? 그렇다면, 그들을 찾아 STA

trd = New Threading.Thread(AddressOf ThreadTask) 
trd.IsBackground = True 
trd.SetApartmentState(ApartmentState.STA) 
1

에 강제로 내 디렉토리를 삭제하여이 문제를 해결했습니다.

관련 문제