2017-02-03 3 views
0

私はUWPアプリケーションを持っています。ボタンクリックでMSIファイルを実行する必要があります。 UWPが "process.start(filename)"をサポートするとは思いません。これを達成するためにUWPで可能ですか?UWPアプリケーションでMSIファイルを実行

答えて

0

UWPはMSIをオープンしません。

しかし、uwpは他のタイプのファイルを開くことができます。

ランチャーを使用することができます。

  1. 実行したいmsiを選択します。

  2. ランチャーファイルでmsiを実行します。

  3. 結果は常に失敗します。

    private async void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
    { 
        //pick msi file 
        FileOpenPicker pick = new FileOpenPicker(); 
        pick.FileTypeFilter.Add(".msi"); 
        StorageFile file = await pick.PickSingleFileAsync(); 
        //run 
        bool result = await Launcher.LaunchFileAsync(file); 
        if (result) 
        { 
         //success 
        } 
    } 
    

しかし、あなたはあなたがフォルダを開くとMSI file.Theコードをクリックして利用することができますMany file types that contain executable code, for example .exe, .msi, and .js files, are blocked from launching

があるので結果は、偽で表示されます。

private async void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
    { 
     //pick msi file 
     var pick = new FileOpenPicker(); 
     pick.FileTypeFilter.Add(".msi"); 
     var file = await pick.PickSingleFileAsync(); 
     //run 
     var result = await Launcher.LaunchFileAsync(file, new LauncherOptions 
     { 
      TreatAsUntrusted = true, 
      DisplayApplicationPicker = true 
     }); 
     if (result) 
     { 
      //success 
     } 
     else 
     { 
      //alway failed 
      var folder = await file.GetParentAsync(); 
      if (folder != null) 
      { 
       await Launcher.LaunchFolderAsync(
        folder, //if you can get the file's parent 
        new FolderLauncherOptions 
        { 
         ItemsToSelect = {file} 
        }); 
      } 
     } 
    } 

参照:Windows Store App running .msi installer

https://msdn.microsoft.com/en-us/library/windows/apps/hh701471.aspx?f=255&MSPPError=-2147217396

関連する問題