1

私は Windows 8 App Store の開発に不慣れで、奇妙なことに出くわしました。

通常の .net ライブラリ (署名付きライブラリ) を作成し、それを Windows ストア アプリケーションに追加しようとすると、Visual Studio 2012 は、このプロジェクトを追加できないと嘆きます。両方のプロジェクトが同じソリューションにあります。

このプロジェクトには System.Net アセンブリへの参照が含まれており、そこからいくつかの型を使用しています。System.Net が完全にサポートされている名前空間ではないことはわかっています。TcpClient、NetworkStream などはすべて削除されました。また、Windows.Networking 名前空間の StreamSocket、DataReader、および DataWriter が代替手段であることも知っています。

あなたを失う前に、要点を説明させてください。このプロジェクトのコンパイル済みアセンブリを Windows ストア アプリケーションへのプロジェクト参照として追加する代わりに、ハード ドライブでコンパイル済みアセンブリを参照し、アセンブリを直接参照します。

驚いたことに、これはうまくいきました!これは、次の質問につながります。

  • なんで?それは私には意味がありません。誰か説明してください。
  • また、このライブラリを使用すると、Windows ストアは私のアプリケーションを拒否しますか? 2 番目の質問に自分で答える... 答えは YES! Windows Certification App は、前述のライブラリが参照されている場合、これを Windows ストア アプリとして認識しなくなりました。
4

1 に答える 1

0

プロジェクトにアセンブリ参照を追加するには、いくつかの方法があります。

同じソリューション内のプロジェクトにアセンブリ参照を追加します。ハード ドライブのどこかにあるアセンブリを参照します。

Visual Studio 2012 で、非準拠の WinRT アセンブリ参照を WinRT プロジェクトに追加すると、Visual Studio 2012 はそれを許可しません。

ただし、ハード ドライブを参照して同じアセンブリを WinRT プロジェクトに追加すると、アセンブリは正常に参照されます。これは、参照されているアセンブリが強力なキーで署名されている場合にのみ機能します。これが製品の欠陥なのか意図的なものなのかはわかりません。

Microsoft は、後で Windows ストア アプリを認証に渡す際に、この欠陥 (実際に欠陥がある場合) を補います。Windows App Store 製品に適していないアセンブリがプロジェクトで参照されていることが認識されるため、認証は失敗します。

つまり、WinRT プロジェクトで WinRT アセンブリを参照することはできません。これを行うことの欠点は、アプリが Windows App Store の検証に失敗することです。これの利点は、Windows App Store 製品を開発していない場合、既に行った作業を再利用できることです。

于 2013-01-04T13:25:36.783 に答える