PackageManager.AddPackageAsync メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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)
パラメーター
追加するパッケージの Uri。 サポートされている URI スキームはローカル ファイル パスとローカル ネットワーク パスだけなので、URI はファイル URI スキーム (file://) に従う必要があります。
- dependencyPackageUris
追加する依存関係パッケージの URI。 依存関係パッケージがない場合、または依存関係パッケージが既に登録されている場合、このパラメーターは null にすることができます。
- deploymentOptions
- DeploymentOptions
DeploymentOptions 列挙からの列挙値のビットごとの組み合わせ。 ForceApplicationShutdown と None は、このメソッドの唯一の有効なオプションです。 その他のオプションを指定すると、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)
パラメーター
追加するパッケージの Uri。 サポートされている URI スキームはローカル ファイル パスとローカル ネットワーク パスだけなので、URI はファイル URI スキーム (file://) に従う必要があります。
- dependencyPackageUris
追加する依存関係パッケージの URI。 依存関係パッケージがない場合、または依存関係パッケージが既に登録されている場合、このパラメーターは null にすることができます。
- deploymentOptions
- DeploymentOptions
DeploymentOptions 列挙からの列挙値のビットごとの組み合わせ。 ForceApplicationShutdown と None は、このメソッドの唯一の有効なオプションです。 その他のオプションを指定すると、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)
パラメーター
追加するソース パッケージの URI。 サポートされている URI スキームはローカル ファイル パスとローカル ネットワーク パスだけなので、URI はファイル URI スキーム (file://) に従う必要があります。
- dependencyPackageUris
追加する依存関係パッケージの URI。 依存関係パッケージがない場合、または依存関係パッケージが既に登録されている場合、このパラメーターは null にすることができます。
- deploymentOptions
- DeploymentOptions
DeploymentOptions 列挙からの列挙値のビットごとの組み合わせ。 ForceApplicationShutdown と None は、このメソッドの唯一の有効なオプションです。 その他のオプションを指定すると、E_INVALIDARG戻り値になります。
- targetVolume
- PackageVolume
パッケージが追加されるボリューム。
登録するメイン バンドルのパッケージ ファミリ名。
- externalPackageUris
登録するメイン バンドル内の他のパッケージの 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)
パラメーター
追加するパッケージの URI。 サポートされている URI スキームはローカル ファイル パスとローカル ネットワーク パスだけなので、URI はファイル URI スキーム (file://) に従う必要があります。
- dependencyPackageUris
追加するフレームワークの依存関係の URI。 依存関係パッケージがない場合、または依存関係パッケージが既に登録されている場合、このパラメーターは null にすることができます。
- options
- DeploymentOptions
パッケージの展開オプション。
- targetVolume
- PackageVolume
パッケージが追加されるボリューム。
登録するメイン バンドルのパッケージ ファミリ名。
- packageUrisToInstall
メイン アプリ パッケージと共にインストールされる省略可能なパッケージの URI。
- relatedPackageUris
新しいオプション パッケージと同じバージョンに更新される関連するオプション パッケージの URI。
戻り値
デプロイ操作の全体にわたる完了の DeploymentProgress の割合。
- 属性
Windows の要件
デバイス ファミリ |
Windows 10 Fall Creators Update (10.0.16299.0 で導入)
|
API contract |
Windows.Foundation.UniversalApiContract (v5.0 で導入)
|