14412


Windows 10 へのアップグレードを機に、UWP アプリの開発を始めようとしています。  
アプリの配置や管理の考え方についてまだ良くわかっていない部分があり、  
その中でも、デバッグ用のアプリの削除方法について質問があります。

例えば、Visual Studio 2015
のプロジェクトテンプレートで作成したユニバーサルアプリをビルド・実行するとローカルコンピュータへの配置が行われますが、  
これによって「スタート」→「すべてのアプリ」にビルドしたアプリが表示されるようになります。

これを削除しようとした場合、私が試した限りでは、VS
上でクリーンしてもこれら配置されたアプリが削除されることはなく、スタートメニューから手動で「アンインストール」を実行する必要があります。

「すべてのアプリ」に、開発中あるいは開発 **していた**
アプリが登録されたまま残っているのは邪魔なので不要なものは排除しておきたいのですが、毎度手動で「アンインストール」するのは非常に煩わしいです。

何か良い解決方法はないでしょうか？

例えば以下のようなことはできないか、ご意見を聞きたいです。

  * 手動で個別にアンインストールする以外の削除方法 
    * 例えば、デバッグ用にビルドされたアプリをまとめてクリーンアップする
  * アプリをローカルコンピュータに登録せずにデバッグする
  * デバッグ時だけ一時的に配置する


CC BY-SA 3.0
2015-08-13T07:16:04.377
14357
2022-06-23T09:12:21.093
2015-09-07T01:47:31.737
10455
10106
question
windows visual-studio windows-store-apps windows-10
Visual Studio による UWP アプリの配置と削除


> •アプリをローカルコンピュータに登録せずにデバッグする  
>  •デバッグ時だけ一時的に配置する

ストアアプリ/UWP アプリの仕様上、配置せずに実行することはできません。  
デバッグ終了時に削除するオプションもなさそうです。

> •手動で個別にアンインストールする以外の削除方法  
>  •例えば、デバッグ用にビルドされたアプリをまとめてクリーンアップする

管理者権限のコマンドプロンプトで PowerShell を利用します。

特定のアプリを削除する:

[code]

    Remove-AppxPackage {PackageFullName}
    
[/code]

詳しくは次をご覧ください。 Get-AppXPackage と組み合わせてアプリ名に特定の文字列を含むものを全部削除する、といったことが可能です。  
MSDN Blogs: [Windows 8
アプリのテストを自動化する](https://web.archive.org/web/20140830201038/http://blogs.msdn.com/b/windowsappdev_ja/archive/2012/09/11/windows-8-automating-
the-testing.aspx)  
TechNet: [Appx Module Cmdlets](https://docs.microsoft.com/en-
us/powershell/module/appx/?view=windowsserver2022-ps)


CC BY-SA 4.0
2015-08-14T05:13:00.210
14412
2022-06-23T09:12:21.093
2022-06-23T09:12:21.093
19769
3210
14357
answer


@biac さんの回答を受け、Powershell を利用して「まとめてクリーンアップする」具体的な方法について検討してみました。

`Get-AppxPackage` から対象のパッケージをフィルタリングして `Remove-AppxPackage` を実行するというのが良さそうです。  
`Get-AppxPackage` は `AppxPackage` オブジェクトを返すので、  
このオブジェクトのプロパティの値をチェックすることになります。

例えば、`AppxPackage.InstallLocation` をテストすることで、特定のパスを含むパッケージを絞り込むことが可能です。  
VS でビルドしたパッケージのインストール先は出力ディレクトリ以下になるようですので、`D:\MyProjects`
以下でプロジェクトを管理している場合、下記のコマンドで `MyProjects` 以下のパッケージをすべて削除できます。

[code]

    Get-AppxPackage | where { $_.InstallLocation.StartsWith( "D:\MyProjects" ) } | Remove-AppxPackage
    
[/code]

他にも、`Publisher` プロパティによってユーザ名でフィルタリングするなど、色々応用は効きそうです。


CC BY-SA 3.0
2015-09-12T16:10:23.853
16551
2015-09-17T16:44:01.870
2015-09-17T16:44:01.870
10106
10106
14357
answer