2012-08-19 3 views
0

이것으로 꽤 훼손되었습니다. 내가 처음으로 설치 프로그램을 만들 때가 아니며 이런 식으로 본 적이 없습니다.설치 프로젝트 빌드, 오류 1001 (사용자 지정 작업에 문제가 있습니다.)

기본적으로 사용자 지정 작업을 추가하고 설치하려고하면이 오류가 발생합니다.

bummer http://s11.postimage.org/44n8woppf/Untitled.png

내가 필요한 모든 코드 필드가있는 장소에 설치 클래스가 할, 그리고 내가 내 이전 설치 클래스에서 사용되는 동일한 필드입니다. Fuselogvw에서

[RunInstaller(true)] 
public partial class Installer : System.Configuration.Install.Installer 
{ 


    public Installer() 
    { 
     InitializeComponent(); 
    } 

    public override void Commit(IDictionary savedState) 
    { 
     base.Commit(savedState); 
     // Do some work on commit 
    } 
... 

는 :

*** Assembly Binder Log Entry (19/08/2012 @ 11:57:09) *** 

The operation was successful. 
Bind result: hr = 0x0. The operation completed successfully. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable C:\Windows\syswow64\MsiExec.exe 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = NT AUTHORITY\SYSTEM 
LOG: Where-ref bind. Location = C:\Program Files (x86)\OrScanTechnologies\CamerasCalibrationApp\CamCalibApplication.exe 
LOG: Appbase = file:///C:/Windows/syswow64/ 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = MsiExec.exe 
Calling assembly : (Unknown). 
LOG: This bind starts in LoadFrom load context. 
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load(). 
LOG: No application configuration file found. 
LOG: Using host configuration file: C:\Users\-\AppData\Local\Temp\CFGB105.tmp 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. 
LOG: Attempting download of new URL file:///C:/Program Files (x86)/OrScan Technologies/CamerasCalibrationApp/CamCalibApplication.exe. 
LOG: Assembly download was successful. Attempting setup of file: C:\Program Files (x86)\OrScan Technologies\CamerasCalibrationApp\CamCalibApplication.exe 
LOG: Entering run-from-source setup phase. 
LOG: Assembly Name is: CamCalibApplication, Version=1.5.2.2, Culture=neutral, PublicKeyToken=null 
LOG: Re-apply policy for where-ref bind. 
LOG: Where-ref bind Codebase does not match what is found in default context. Keep the result in LoadFrom context. 
LOG: Binding succeeds. Returns assembly from C:\Program Files (x86)\OrScan Technologies\CamerasCalibrationApp\CamCalibApplication.exe. 
LOG: Assembly is loaded in LoadFrom load context. 

fuselogvw more http://s13.postimage.org/hqn04w1bb/Untitled2.png

답변

0

에서 좀 더 많은 정보를 원하시면 가끔 오류 이런 종류의 프로젝트 플랫폼 대상 구성의 불일치에 의해 발생합니다. 모든 솔루션 프로젝트가 AnyCPU/x64/x86 (원하는대로)인지 확인하십시오.

+0

빠른 답변을드립니다. 나는 그것이 그렇게 생각하지 않는다. 플랫폼 설정이 모두 좋은 것 같습니다. – Oyiwai

+0

fuslogvw에서 좀 더 구체적인 로그가 있습니까? 플랫폼 타겟은 무엇입니까? 그리고 모든 프로젝트 대상 프레임 워크가 같은지 확인 했습니까? – Tamir

+0

내 플랫폼 타겟이 '모든 CPU'입니다 (win32/x86에서도 시도했습니다). 모든 프로젝트는 win32 또는 x86입니다. 원본 메시지를 편집하여 로그의 맨 아래 부분을 포함시킵니다 (관련 없음). 문제는 CustomAction 명령을 제거해도 문제가되지 않는다는 것입니다. – Oyiwai

1

Windows Installer XML (DTX) 배포 도구 기초 사용자 지정 작업에 대한 Google 검색을 수행하십시오. 이는 관리되는 코드 사용자 지정 작업의 표준이며 1001 개의 오류 메시지를 제거합니다.

그런데, 바퀴를 다시 발명하지 말라. 자체 Windows Installer 표준 표 및 작업을 항상 사용하여 프로세스 사용자 지정 작업을 롤링하는 대신 항상 사용하십시오.

0

해결책은 어떻게 든 종속성으로 추가되지 않은 2 개의 opencv dll 파일을 추가하는 것이 었습니다. 그 트릭을 마쳤습니다.

+0

아직 경험하지 못한 InstallUtil 사용자 지정 작업에 약 12 ​​가지의 다른 실패 모드 inherint가 있습니다. 날 믿어, 덤프하고 DTF를 사용하여 코드를 리팩터링하십시오. –

관련 문제