2009-07-08 2 views
1

최근 WPF 응용 프로그램을 만들었으며 많은 사용자를 위해 응용 프로그램을 게시하려고했지만 응용 프로그램은 일부 대상 사용자 컴퓨터에서 문제가있는 것 같습니다. 사용자가 시작할 때 충돌이 발생합니다. 대상 버전으로 .NET Framework v.3.0을 사용하여 응용 프로그램을 만들고 사용자 컴퓨터에 .NET Framework가 설치되어 있습니다. 난 그냥 (예를 들어 시스템을 설치) 내 응용 프로그램이 오류없이 실행되도록 보장하는 방법을 원한다.WPF 응용 프로그램이 사용자 컴퓨터에서 완벽하게 실행되는 것을 보장하려면 어떻게해야합니까?

내 테스트 PC (Visual Studio가 설치되지 않았지만 3.0 .NET Framework 만 설치되어 있음)에서 실제로 이상하게 들리는 것은 이상합니다.

응용 프로그램에는 .NET 이외의 추가 참조가 없습니다. http://nippon.is74.ru/ForismaticTray.7z

답변

2

사용을 NSIS와 같은 설치하고 프레임 워크를 확인 : 당신이 원하는 경우에 당신이 그것을 테스트 할 수 있도록 여기에

이 응용 프로그램을 다운로드 할 수있는 링크입니다. 그 대상 시스템에, it.Here의 내가 NSIS에서 무엇을

Function IsDotNetInstalledAdv 
    !insertmacro MUI_HEADER_TEXT "Checking for prerequisites." "Checking for .net framework 3.5 SP1.." 

    ReadRegDWORD $0 HKLM "software\Microsoft\NET Framework Setup\NDP\v3.5" "SP" 
    StrCmp $0 1 skip.DotNet 
    !insertmacro MUI_HEADER_TEXT "Installing .net framework." "Installing .net framework 3.5 SP1.." 

    DetailPrint "Proceeding to install dotnet bootstrap installer...." 
    sleep 1000 
MessageBox MB_YESNO|MB_ICONQUESTION "This software requires DotNet framework ${MIN_FRA_MAJOR}.${MIN_FRA_MINOR}.${MIN_FRA_BUILD}.$\r$\n$\r$\nDo you wish to install it now?" IDNO skip.DotNet 
    SetOutPath $TEMP 
    File "${PACKAGE_DIR_BIN}\dotNetFx35setup.exe" 
    GetDlgItem $0 $HWNDPARENT 1 
    System::Call "kernel32::CreateMutexA(i 0, i 0, t 'DotNetInstall') i .r0 ?e" 
    HideWindow 
    ExecWait "$TEMP\dotNetFx35setup.exe /qbf /norestart" $1 
    Delete "$TEMP\dotNetFx35setup.exe" 
    ShowWindow $0 ${SW_SHOW} 
    BringToFront 

    IntCmp $1 0 skip.DotNet 
    IntCmp $1 8192 skip.DotNet 
    IntCmp $1 3010 0 DotNetInstallationFailed DotNetInstallationFailed 
    SetRebootFlag true 
    goto skip.DotNet 

    DotNetInstallationFailed: 
    HideWindow 
    MessageBox MB_OK|MB_ICONSTOP "DotNet Framework 3.5 was not successfully installed on the machine" 
    Quit 

    skip.DotNet: 
FunctionEnD 

다운로드를 설치하고 Micorsoft

NSIS에 대한 업데이트에서 3.5 SP1 패키지하지 않는 경우 : 3.0 체크 레지스트리의 경우를 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0 폴더입니다.

1

.NET 서비스 팩 문제 일 수 있습니까? Visual Studio 2008을 사용하여 응용 프로그램을 작성하는 경우 .NET 3.0을 대상으로 명시 적으로 설정하더라도 해당 응용 프로그램은 기본적으로 .NET 3.0 SP1을 대상으로합니다. Visual Studio에서 설치되는 .NET 3.5 2008). 사용자의 컴퓨터를 .NET 3.0 SP1 (Microsoft의 사이트에서 별도로 다운로드 할 수 있음)로 업그레이드하고 문제가 해결되는지 확인해보십시오.

관련 문제