PackageManager.AddPackageAsync メソッド

定義

オーバーロード

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

指定した展開オプションを使用して、現在のユーザーのパッケージ (メイン パッケージ) とその依存関係パッケージを追加します。

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume)

指定した展開オプションを使用して、パッケージ (メイン パッケージ) とその依存関係パッケージを現在のユーザーの指定されたボリュームに追加します。

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>)

指定 した展開 オプションを使用して、現在のユーザーの指定したボリュームにパッケージとその依存関係パッケージを追加します。

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>, IIterable<Uri>)

指定した展開オプションを使用して、現在のユーザーのパッケージ (メイン パッケージ) とその依存関係パッケージを追加します。

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions)

指定した展開オプションを使用して、現在のユーザーのパッケージ (メイン パッケージ) とその依存関係パッケージを追加します。

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions deploymentOptions) = AddPackageAsync;
/// [Windows.Foundation.Metadata.Overload("AddPackageAsync")]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& deploymentOptions);
[Windows.Foundation.Metadata.Overload("AddPackageAsync")]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions deploymentOptions);
function addPackageAsync(packageUri, dependencyPackageUris, deploymentOptions)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), deploymentOptions As DeploymentOptions) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

パラメーター

packageUri
Uri Uri

追加するパッケージの Uri。 サポートされている URI スキームはローカル ファイル パスとローカル ネットワーク パスだけなので、URI はファイル URI スキーム (file://) に従う必要があります。

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

追加する依存関係パッケージの URI。 依存関係パッケージがない場合、または依存関係パッケージが既に登録されている場合、このパラメーターは null にすることができます。

deploymentOptions
DeploymentOptions

DeploymentOptions 列挙からの列挙値のビットごとの組み合わせ。 ForceApplicationShutdownNone は、このメソッドの唯一の有効なオプションです。 その他のオプションを指定すると、E_INVALIDARG戻り値になります。

戻り値

デプロイ要求の状態。 DeploymentResult には、完了したデプロイ操作の最終的な戻り値が含まれます。 DeploymentProgress を使用して、デプロイ操作全体の完了率を取得できます。

属性

Windows の要件

アプリの機能
packageManagement

次の例では、 PackageManager.AddPackageAsync メソッドを使用して、依存関係がないパッケージ、または依存関係が既にインストールされているパッケージをインストールします。 この例では、メイン パッケージのパスが引数として渡されることに注意してください。 AddPackageAsync は、非同期操作の管理に使用できるオブジェクトを返します。 この例では、 Completed プロパティを使用して デリゲート を設定し、 Status プロパティを調べて展開操作の状態を確認します。 状態が Error の場合、この例では GetResults メソッドを呼び出して、追加のエラー情報を取得します。

using Windows.Foundation;
using Windows.Management.Deployment;

public static int Main(string[] args)
{
    string inputPackageUri = args[0];
    int returnValue=0;

    Uri packageUri = new Uri(inputPackageUri);            

    PackageManager packageManager = new PackageManager();

    IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> deploymentOperation = 
        packageManager.AddPackageAsync(
            packageUri, 
            null, 
            DeploymentOptions.None);

    // This event is signaled when the operation completes
    ManualResetEvent opCompletedEvent = new ManualResetEvent(false); 

    // Define the delegate using a statement lambda
    deploymentOperation.Completed = (depProgress, status) => { opCompletedEvent.Set(); };

    // Wait until the operation completes
    opCompletedEvent.WaitOne();

    // Check the status of the operation
    if (deploymentOperation.Status == AsyncStatus.Error)
    {
        DeploymentResult deploymentResult = deploymentOperation.GetResults();
        Console.WriteLine("Error code: {0}", deploymentOperation.ErrorCode);
        Console.WriteLine("Error text: {0}", deploymentResult.ErrorText);
        returnValue = 1;
    }
    else if (deploymentOperation.Status == AsyncStatus.Canceled)
    {
        Console.WriteLine("Installation canceled");
    }
    else if (deploymentOperation.Status == AsyncStatus.Completed)
    {
        Console.WriteLine("Installation succeeded");
    }
    else
    {
        returnValue = 1;
        Console.WriteLine("Installation status unknown");
    }

    return returnValue;
}

C++/WinRT の Visual Studio のサポートに関する記事も参照してください。

// main.cpp : In Visual Studio, create a new Windows Console Application (C++/WinRT).
#include "pch.h"

#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Management.Deployment.h>
#include <iostream>

using namespace winrt;
using namespace Windows::Foundation;
using namespace Windows::Management::Deployment;

int wmain(int /* argc */, wchar_t *argv[], wchar_t * /* envp[] */)
{
    winrt::init_apartment();

    int returnValue{ 0 };

    std::wstring packageUriString{ argv[1] };
    Uri packageUri{ packageUriString };
    PackageManager packageManager;

    auto deploymentOperation{ packageManager.AddPackageAsync(packageUri, nullptr, DeploymentOptions::None) };
    deploymentOperation.get();

    // Check the status of the operation
    if (deploymentOperation.Status() == AsyncStatus::Error)
    {
        auto deploymentResult{ deploymentOperation.GetResults() };
        std::wcout << L"Error code: " << deploymentOperation.ErrorCode() << std::endl;
        std::wcout << L"Error text: " << deploymentResult.ErrorText().c_str() << std::endl;
        returnValue = 1;
    }
    else if (deploymentOperation.Status() == AsyncStatus::Canceled)
    {
        std::wcout << L"Installation canceled" << std::endl;
    }
    else if (deploymentOperation.Status() == AsyncStatus::Completed)
    {
        std::wcout << L"Installation succeeded" << std::endl;
    }
    else
    {
        std::wcout << L"Installation status unknown" << std::endl;
        returnValue = 1;
    }
    return returnValue;
}
using namespace Windows::Foundation;
using namespace Windows::Management::Deployment;

[STAThread]
int __cdecl main(Platform::Array<String^>^ args)
{  
    String^ inputPackageUri = args[1];
    int returnValue=0;

    Uri^ packageUri = ref new Uri(inputPackageUri);

    PackageManager^ packageManager = ref new PackageManager();

    auto deploymentOperation = packageManager->AddPackageAsync(
        packageUri, 
        nullptr, 
        DeploymentOptions::None);

    DeploymentResult^ deploymentOperationResult;

    // This event is signaled when the operation completes
    opCompletedEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

    // Define the delegate
    deploymentOperation->Completed = 
        ref new AsyncOperationWithProgressCompletedHandler<DeploymentResult^, DeploymentProgress>(
        [&](IAsyncOperationWithProgress<DeploymentResult^, DeploymentProgress>^ operation, AsyncStatus)
    {
        SetEvent(opCompletedEvent);
    });

    // Wait until the operation completes
    WaitForSingleObject(opCompletedEvent, INFINITE);

    // Check the status of the operation
    if ( deploymentOperation->Status == AsyncStatus::Error )
    {
        auto deploymentResult = deploymentOperation->GetResults();
        wcout << L"Error code: " << deploymentOperation->ErrorCode.Value << endl;
        wcout << L"Error text: " << deploymentResult->ErrorText->Data() << endl;
        returnValue = 1;
    }
    else if ( deploymentOperation->Status == AsyncStatus::Canceled )
    {
        wcout << L"Installation canceled" << endl;
    }
    else if ( deploymentOperation->Status == AsyncStatus::Completed )
    {
        wcout << L"Installation succeeded" << endl;
    }
    else
    {
        wcout << L"Installation status unknown" << endl;
        returnValue = 1;
    }
    return returnValue;
}

こちらもご覧ください

適用対象

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume)

指定した展開オプションを使用して、パッケージ (メイン パッケージ) とその依存関係パッケージを現在のユーザーの指定されたボリュームに追加します。

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume ^ targetVolume) = AddPackageAsync;
/// [Windows.Foundation.Metadata.Overload("AddPackageToVolumeAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& deploymentOptions, PackageVolume const& targetVolume);
[Windows.Foundation.Metadata.Overload("AddPackageToVolumeAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume targetVolume);
function addPackageAsync(packageUri, dependencyPackageUris, deploymentOptions, targetVolume)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), deploymentOptions As DeploymentOptions, targetVolume As PackageVolume) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

パラメーター

packageUri
Uri Uri

追加するパッケージの Uri。 サポートされている URI スキームはローカル ファイル パスとローカル ネットワーク パスだけなので、URI はファイル URI スキーム (file://) に従う必要があります。

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

追加する依存関係パッケージの URI。 依存関係パッケージがない場合、または依存関係パッケージが既に登録されている場合、このパラメーターは null にすることができます。

deploymentOptions
DeploymentOptions

DeploymentOptions 列挙からの列挙値のビットごとの組み合わせ。 ForceApplicationShutdownNone は、このメソッドの唯一の有効なオプションです。 その他のオプションを指定すると、E_INVALIDARG戻り値になります。

targetVolume
PackageVolume

パッケージが追加されるボリューム。

戻り値

デプロイ要求の状態。 DeploymentResult には、完了したデプロイ操作の最終的な戻り値が含まれます。 DeploymentProgress を使用して、デプロイ操作全体の完了率を取得できます。

属性

Windows の要件

アプリの機能
packageManagement

こちらもご覧ください

適用対象

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>)

指定 した展開 オプションを使用して、現在のユーザーの指定したボリュームにパッケージとその依存関係パッケージを追加します。

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume ^ targetVolume, IIterable<Platform::String ^> ^ optionalPackageFamilyNames, IIterable<Uri ^> ^ externalPackageUris) = AddPackageAsync;
/// [Windows.Foundation.Metadata.DefaultOverload]
/// [Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndOptionalPackagesAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& deploymentOptions, PackageVolume const& targetVolume, IIterable<winrt::hstring> const& optionalPackageFamilyNames, IIterable<Uri> const& externalPackageUris);
[Windows.Foundation.Metadata.DefaultOverload]
[Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndOptionalPackagesAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume targetVolume, IEnumerable<string> optionalPackageFamilyNames, IEnumerable<System.Uri> externalPackageUris);
function addPackageAsync(packageUri, dependencyPackageUris, deploymentOptions, targetVolume, optionalPackageFamilyNames, externalPackageUris)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), deploymentOptions As DeploymentOptions, targetVolume As PackageVolume, optionalPackageFamilyNames As IEnumerable(Of String), externalPackageUris As IEnumerable(Of Uri)) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

パラメーター

packageUri
Uri Uri

追加するソース パッケージの URI。 サポートされている URI スキームはローカル ファイル パスとローカル ネットワーク パスだけなので、URI はファイル URI スキーム (file://) に従う必要があります。

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

追加する依存関係パッケージの URI。 依存関係パッケージがない場合、または依存関係パッケージが既に登録されている場合、このパラメーターは null にすることができます。

deploymentOptions
DeploymentOptions

DeploymentOptions 列挙からの列挙値のビットごとの組み合わせ。 ForceApplicationShutdownNone は、このメソッドの唯一の有効なオプションです。 その他のオプションを指定すると、E_INVALIDARG戻り値になります。

targetVolume
PackageVolume

パッケージが追加されるボリューム。

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

登録するメイン バンドルのパッケージ ファミリ名。

externalPackageUris

IIterable<Uri>

IEnumerable<Uri>

登録するメイン バンドル内の他のパッケージの URI。

戻り値

デプロイ操作の全体にわたる完了の DeploymentProgress の割合。

属性

Windows の要件

デバイス ファミリ
Windows 10 Creators Update (10.0.15063.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v4.0 で導入)

こちらもご覧ください

適用対象

AddPackageAsync(Uri, IIterable<Uri>, DeploymentOptions, PackageVolume, IIterable<String>, IIterable<Uri>, IIterable<Uri>)

指定した展開オプションを使用して、現在のユーザーのパッケージ (メイン パッケージ) とその依存関係パッケージを追加します。

public:
 virtual IAsyncOperationWithProgress<DeploymentResult ^, DeploymentProgress> ^ AddPackageAsync(Uri ^ packageUri, IIterable<Uri ^> ^ dependencyPackageUris, DeploymentOptions options, PackageVolume ^ targetVolume, IIterable<Platform::String ^> ^ optionalPackageFamilyNames, IIterable<Uri ^> ^ packageUrisToInstall, IIterable<Uri ^> ^ relatedPackageUris) = AddPackageAsync;
/// [Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndRelatedSetAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> AddPackageAsync(Uri const& packageUri, IIterable<Uri> const& dependencyPackageUris, DeploymentOptions const& options, PackageVolume const& targetVolume, IIterable<winrt::hstring> const& optionalPackageFamilyNames, IIterable<Uri> const& packageUrisToInstall, IIterable<Uri> const& relatedPackageUris);
[Windows.Foundation.Metadata.Overload("AddPackageToVolumeAndRelatedSetAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<DeploymentResult,DeploymentProgress> AddPackageAsync(System.Uri packageUri, IEnumerable<System.Uri> dependencyPackageUris, DeploymentOptions options, PackageVolume targetVolume, IEnumerable<string> optionalPackageFamilyNames, IEnumerable<System.Uri> packageUrisToInstall, IEnumerable<System.Uri> relatedPackageUris);
function addPackageAsync(packageUri, dependencyPackageUris, options, targetVolume, optionalPackageFamilyNames, packageUrisToInstall, relatedPackageUris)
Public Function AddPackageAsync (packageUri As Uri, dependencyPackageUris As IEnumerable(Of Uri), options As DeploymentOptions, targetVolume As PackageVolume, optionalPackageFamilyNames As IEnumerable(Of String), packageUrisToInstall As IEnumerable(Of Uri), relatedPackageUris As IEnumerable(Of Uri)) As IAsyncOperationWithProgress(Of DeploymentResult, DeploymentProgress)

パラメーター

packageUri
Uri Uri

追加するパッケージの URI。 サポートされている URI スキームはローカル ファイル パスとローカル ネットワーク パスだけなので、URI はファイル URI スキーム (file://) に従う必要があります。

dependencyPackageUris

IIterable<Uri>

IEnumerable<Uri>

追加するフレームワークの依存関係の URI。 依存関係パッケージがない場合、または依存関係パッケージが既に登録されている場合、このパラメーターは null にすることができます。

options
DeploymentOptions

パッケージの展開オプション。

targetVolume
PackageVolume

パッケージが追加されるボリューム。

optionalPackageFamilyNames

IIterable<String>

IEnumerable<String>

IIterable<Platform::String>

IIterable<winrt::hstring>

登録するメイン バンドルのパッケージ ファミリ名。

packageUrisToInstall

IIterable<Uri>

IEnumerable<Uri>

メイン アプリ パッケージと共にインストールされる省略可能なパッケージの URI。

relatedPackageUris

IIterable<Uri>

IEnumerable<Uri>

新しいオプション パッケージと同じバージョンに更新される関連するオプション パッケージの URI。

戻り値

デプロイ操作の全体にわたる完了の DeploymentProgress の割合。

属性

Windows の要件

デバイス ファミリ
Windows 10 Fall Creators Update (10.0.16299.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v5.0 で導入)

こちらもご覧ください

適用対象