花鬼の庵

開発とかゲームとか実況とか

【UWP】アプリのパッケージ作成の際に表示されたエラー

自作アプリも作った際ストアにせよサイトにせよ、公開するにはパッケージ作成を行う必要があります。
自分もこの間、初めて自作アプリを作成しストアに提出するため、パッケージ作成を行ったのですが…ここでとあるエラーが表示されました。

『エラー:ペイロードに含まれている複数のファイルで同じターゲット パス '〇〇〇' が指定されていますが、内容が異なります。』が表示される。

具体的には以下のようなエラーが表示されました。

ペイロードに含まれている複数のファイルで同じターゲット パス 'WindowsBase.dll' が指定されていますが、内容が異なります。ソース ファイル: 
C:\Users\user\.nuget\packages\runtime.win10-x64.microsoft.netcore.universalwindowsplatform\6.2.13\runtimes\win10-x64\lib\uap10.0.15138\WindowsBase.dll
C:\Users\user\.nuget\packages\runtime.win10-x64-aot.microsoft.netcore.universalwindowsplatform\6.2.13\runtimes\win10-x64-aot\lib\uap10.0.15138\WindowsBase.dll

上記では『WindowsBase.dll』のエラーではありますが『runtime.win10-x64.microsoft.netcore.universalwindowsplatform』関連の.dllで160程同じエラーが表示されています。

むろん、普通にdebug、releaseを行えばエラー、警告もなく正常に動作しています。
なにかdllを別に追加した覚えもありません。

なんとなく言っている意味は分かります。
「重複してdllが2つある上に内容が違うからどっちか消してね」ということでしょう。
問題はこの2つ、より詳しくいうなら『C:\Users\user.nuget\packages』自体がパッケージ作成の際に”自動生成”されているということ。
プロジェクトを確認してみますが、重複して参照しているようなファイルは見つかりません。

いや、もうさっぱり原因がわかりませんでした。
ちなみVisual Studio 2019を使用して開発しています。

とりあえずググって解決方法を探ってみる

そもそもUWPの情報自体が少ないなかで解決方法が見つかるのか…。
調べてみたところ、
ペイロードに含まれている複数のファイルで同じターゲット パス '〇〇〇' が指定されていますが、サイズが異なります。』というエラーが表示された
という人がちらほら…。
最後の文言は違いますが、おそらく根本的な原因は同じでしょう。

解決方法を載せている方もいたので試してみます。

--①--
まず一旦ソリューションを閉じて手動でbin、obj、AppPackageフォルダを削除。
その後、改めてソリューションを開いて、パッケージ作成を行う。

結果
ダメでした。
ソリューションを開いてビルドはさんでからパッケージ作成、ソリューションを開いたままにして不要フォルダを削除して…などいろいろ試してみましたが全部ダメ。
相変わらずエラーが表示されます。

--②--
エラーが発生しているプロジェクトを選択し、プロパティを表示し、ビルドペインに移動。
『.NET ネイティブツールチェーンでコンパイルする』からチェックを外す。
というもの

結果
これもダメでした。
そもそもストア用のパッケージを作成する際にはこの項目は自動的にチェックされるっぽい。
自動的に…というとこから何かこれが原因っぽく感じてしまいますが、やっぱりこれでもないっぽい。

--③--
複数プロジェクトの中で重複したファイルが存在する場合、そのファイルを削除する。

結果
そもそも1つのプロジェクトしかないのでこれもダメ

お手上げかとおもいきや…

もうお手上げ状態です。
もしやVisual Studio 2019だからダメなのか?
と、思い一度Visual Studio 2019で新規UWPプロジェクトを作成、まっさらな状態でパッケージ作成を試してみることに。
…そうするとエラーが出ませんでした。
パッケージ作成が成功しています。

ということは作成している現在のプロジェクトの何かがおかしいということ…。

………。

xaml.cs、.csのファイルだけ新規UWPプロジェクトにお引越しさせてパッケージの作成をしてみました。
するとエラーも出ずにいけた!

これで作成したパッケージをMicrosoftストアに提出、無事に審査も通りストアに公開されました。
自分の別PCにDL、インストールしてみても正常に動作しています。
解決…したけど何かもやもやが残る結果となってしまいました。

締め

根本原因も何もわかりませんでしたが、解決方法としては

新規UWPプロジェクト作成

旧プロジェクトからソースのみを『追加→既存の項目』でお引越し

パッケージ作成

です。
でもこのエラーが出るたびプロジェクトを作りなおすのは手もだし…何より危険な香りが…。
なんとか、原因を探りたいところ…。

原因について何か御存知の方がいらっしゃいましたら是非コメントをいただきたいです。

またMicrosoftストアに公開している『TRPGシナリオ管理』というアプリがあります。
タイトル通りのアプリですが、TRPGを知らない人でも一度ご覧になってご感想等いただければと思います(_ _)

hanaonieruni.hatenablog.com