Как добавить ссылку на Windows.Networking в Windows Phone 8

Я хочу использовать DatagramSockets в приложении WP8 для связи с SSDP/UDP-устройством (Sony ActionCam), но я не могу найти Windows.Networking DLL, поскольку ее нет ни в одном из обычных мест, откуда вы добавляете ссылки. Кажется, что он живет в разных местах на моем компьютере с Windows 8, но если я попытаюсь добавить его откуда-нибудь, например, %Windows%/system32, он скажет мне, что это невозможно (что, я думаю, потому что нет библиотеки типов?).

Так может кто-нибудь, пожалуйста, скажите мне, что мне не хватает? Есть ли какой-то другой SDK, который мне нужно скачать? Я просмотрел все документы MSDN, и, хотя в нем подробно упоминается пространство имен, он не говорит мне, как найти или добавить его для приложения WP8 (типичный MS).

Надеюсь, кто-то может мне помочь - я явно упускаю что-то очевидное, но не понимаю, что и почему.


person nzmike    schedule 06.10.2013    source источник
comment
Я только что протестировал здесь. using Windows.Networking.Sockets; показывает себя нормально. Даже этот маленький код работает: var socket = new DatagramSocket();. Это происходит только с приложениями WinPhone или с любым другим типом проекта?   -  person Tico    schedule 06.10.2013
comment
Спасибо за ответ Тико. Если я создаю обычное приложение Магазина Windows 8, я могу увидеть DLL и добавить ее, но когда я пытаюсь сделать то же самое в проекте WP8, DLL там нет. Вам нужно было добавить ссылку на Windows.Networking? Если да, то в вашей системе, по какому пути он был? Если я просто войду в свой код и добавлю, используя Windows. Я не получаю intellisense, и он сразу же помечает пространство имен как ошибочное ... должно быть что-то еще, что нужно сделать, чтобы включить использование Windows DLL ... снова в Google, я думаю!   -  person nzmike    schedule 07.10.2013
comment
Я только что набрал using Windows.Networking Intellisense сделал свое дело. Возможно, вам следует переустановить SDK. Из Что нового в Windows Phone SDK 8.0: Incoming sockets Windows Phone 8 introduces the enhancements to incoming sockets. System.Net.Sockets and Windows.Networking.Sockets both support incoming sockets, which means your app can listen for an incoming network connection, and then bind to that connection.   -  person Tico    schedule 07.10.2013


Ответы (3)


Хорошо, я решил это - я совершенно не понимаю, почему это происходит, но похоже, что виновником был VS2012. В отчаянии я сохранил код, который мне был нужен, удалил все решение и воссоздал его, и теперь я вижу членов пространства имен Windows... странно! Также очень, очень раздражает - я потратил на это часы, по-видимому, все из-за какой-то внутренней проблемы с VS2012.

Спасибо за ваш вклад, Тико, извините, если я потратил ваше время!

person nzmike    schedule 06.10.2013

Просто чтобы продолжить это - у меня была такая же проблема. Мне пришлось выбрать .Net Framework 4.5 вместо 4.0. Создание нового решения в версии 4.0 в VS2012 не позволит получить доступ к библиотеке Windows.Networking. А вот 4.5 работал отлично.

person SeatSherpa    schedule 17.12.2013

Еще одна идея о том, что могло пойти не так, поскольку я сам наткнулся на эту ошибку прямо сейчас. Вместо библиотеки классов Windows Phone я добавил портативную библиотеку классов (поддерживающую Windows Phone 8 и Windows Store 8+ с .net 4.5). Похоже, эта комбинация не поддерживает Windows.Networking

person Andreas    schedule 02.02.2014