0

解決策には2つのプロジェクトが含まれています.1つはC++を使用するメインプロジェクトで、もう1つはC#を使用するランタイムコンポーネントです。Windows Universal - C++プロジェクトでC#ランタイムコンポーネントを呼び出すとクラッシュする

Windows 10のVS Expressでデバイスにロードすると、Windows 10 Phoneで正常に機能します。

しかし、Windowsストアにアップロードするためのパッケージは、電話で実行するとクラッシュします。

次の手順でクラッシュを再現します。 (1).appxuploadパッケージを作成し、解凍して.appxパッケージを抽出します。 (2)この.appxパッケージを電話機に入れます。 (3)アプリを携帯電話にインストールするには、.appxファイルをクリックします。 (4)アプリを実行する - C#クラスをインスタンス化するまでアプリケーションは正常に実行されます - アプリがクラッシュします。

私はそれを避けるために特に必要なことは何ですか?それともMicrosoftのバグですか?

ありがとうございました。

+0

あなたがエラーを投稿した場合、誰かがあなたを助けてくれるかもしれません... – Gusman

+0

コメントありがとうGusman、例外があります。アプリがクラッシュしました - "指定されたモジュールが見つかりませんでした"。 Visual Studioを使用して電話機にアプリケーションを読み込むと、この例外は発生しません(デバッグまたはリリースはどちらも問題ありません) – Jason

+0

正確なエラーを投稿します。どのモジュールも見つかりませんか?できるだけ多くの情報がない限り、正確なエラーメッセージをコピーして質問に追加することはできません。誰もあなたを助けることはできません。より多くの情報を提供すれば、より簡単にヘルプを得ることができます。 – Gusman

答えて

0

私は答えを得ました。

私は最初から電話で.appxuploadパッケージをインストールしてはいけないと思います。

変更を加えずに.appxuploadパッケージをWindowsストアに提出し、Storeからアプリをインストールすると、アプリがまったくクラッシュしません。どうやら、.appxuploadパッケージはStoreにのみ提出するためのものです - 私はWindows Storeが提出後にパッケージのいくつかのプロセスを行うと思いますか?

アプリのテストをご希望の場合は、必ず.appxuploadではなくXXX_Testフォルダに.appxパッケージをインストールしてください。

-1

パスはどうなりますか?ビジュアルスタジオでは、コンポーネントパスは正常に動作していますが、appxからロードする間にパスが正しく設定されていない可能性があります。したがって、アプリケーションは必要なコンポーネントを見つけることができません...

プロジェクトの依存関係(C++プロジェクトとc#プロジェクトの両方)のさまざまなディレクトリとファイルパスを調べ、すべてのコンポーネントとその参照をリストアップしてみてください。次に、電話で実行しているときにそれらの参照がこれらのパスに見つかる可能性があるかどうかを確認します。

+0

返信いただきありがとうございます。私はappxパッケージの参考文献と内容も確認しました。すべての参考資料が存在するようです。私はまた、C#からC#を呼び出すときにだけクラッシュが発生することも発見しました。 C#の代わりにC++でランタイムコンポーネントを実装すると、クラッシュは発生しません。 – Jason

+0

dllのバージョンはどうですか? C#コンポーネントには、電話に存在しない依存関係や、異なるバージョンの依存関係がありますか? – PRinCEKtd

+0

いいえ、このC#コンポーネントには現在、空のクラスファイルしかありません。他のコンポーネントに依存しません。ちなみに、XX_Testフォルダのappxはうまく動作し、appxのみで動作します。appxuploadクラッシュ。 – Jason

関連する問題