2009-07-08 4 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をターゲットにします。これは.NET 3.5(Visual Studio 2008)。ユーザーのマシンを.NET 3.0 SP1(Microsoftのサイトで別途ダウンロードして入手可能)にアップグレードし、問題が修正されているかどうか確認してみてください。

関連する問題