2016-04-27 13 views
0

ユニバーサルWindowsアプリケーションランタイムコンポーネントプロジェクトがあります。これは Microsoft.Azure.Devices.Client NuGetパッケージに依存します。この汎用ランタイムコンポーネントは、ユニバーサルWindowsアプリケーションプロジェクトタイプのVisual C++で書かれています。今度はC#プロジェクトが自動的にコンパイルされ、C++プロジェクトも同様にコンパイルされますが、C#プロジェクトがNuGetパッケージを使用しているC++プロジェクトからC#プロジェクトを参照するソリューションをビルドすると、コンパイラは次の警告を表示します:'Microsoft.Azure.Devices.Client.DeviceClient' was not included in compilation, but was referenced in type 'AzureConnection.Connection'. There may have been a missing assembly. NuGetパッケージからのコードを呼び出そうとすると、プログラムがクラッシュするため、アセンブリが欠落しています。ネイティブ.NET NuGetパッケージにより、.NETコンパイラによる「アセンブリが見つからない可能性があります」警告が発生する

これは基本的に、Microsoft.Azure.Devices.Client.DeviceClientタイプがNuGetパッケージに由来するため、NuGetパッケージがコンパイル時に適切に使用されていないことを意味します。私は、Visual Studio NuGetパッケージマネージャーから、Microsoft.Azure.Devices.ClientパッケージがC#ランタイムコンポーネントプロジェクトに正しくインストールされていることがわかります。どのプラットフォーム用にもリリースビルドを作成しようとすると、同じ問題が発生します。

なぜビルドでNuGetバイナリが見つからないのですか?これをどのように修正できますか?

+0

これはややうまく機能しません。私はMSBuildを頭で打ち負かすために1時間の人生を失いましたが、警告を取り除くだけで、実行時にはまだアクティブ化できません。パッケージはこの特定のシナリオでは決してテストされていませんでしたが、C#アプリケーションから使用するとうまく動作します。著者からの助けを得るために、Nugetパッケージの "オーナーに連絡する"リンクをクリックしてください。 –

+0

@HansPassant現在、この問題の解決策は他にありませんが、アプリケーション全体をC#で記述していますか? –

答えて

0

パッケージがコンポーネントに正しくコンパイルされていないため、このNuGetパッケージをGeneric Runtime Componentプロジェクトで使用する方法がないようです。 NuGetパッケージをコンパイルして正常に動作する単一のC#アプリケーションに自分のコードを移行することで、この問題を解決しなければなりませんでした。

関連する問題