Расширение SDK для приложений Магазина Windows не работает во время удаленной отладки

Я создал Extension SDK, который в основном состоит из компонента среды выполнения Windows, который я написали на C++/CX. Я сделал это, чтобы сделать свой компонент доступным для разработчиков, создающих приложения Магазина Windows 8 на любом языке (C++, C# или JavaScript).

SDK отлично работает на моей локальной машине. Я могу создать и запустить свое приложение локально как в конфигурации отладки, так и в конфигурации выпуска. Однако, когда я пытаюсь удаленно отладить свое приложение на удаленном компьютере, я замечаю, что мое приложение дает сбой при попытке использовать компонент из моего SDK. Как ни странно, этот сбой происходит только тогда, когда мое приложение работает в режиме отладки. В релизном режиме все работает нормально.

Что я делаю неправильно?


person Raman Sharma    schedule 21.12.2012    source источник


Ответы (1)


Использование Visual Studio 2012

Думаю, я понял. Я включил один и тот же двоичный файл компонента C++/CX WinRT в папки Debug и Retail в папке redist моего Extension SDK.

В результате этот двоичный файл всегда зависит от выпуска CRT из Visual Studio 2012.

Теперь, когда я запускаю выпускную версию своего приложения удаленно, как двоичный файл приложения, так и двоичный файл компонента SDK зависят от выпуска CRT. Выпуск CRT также находится в системе, поскольку приложение зависит от выпуска пакета VCLibs. Таким образом, приложение выпуска работает нормально.

Однако, когда я запускаю отладочную версию своего приложения удаленно, приложение зависит от CRT отладки из Visual Studio 2012, но компонент SDK зависит от CRT выпуска. Поскольку приложение зависит только от пакета отладки VCLibs, во время выполнения оно находит только CRT отладки. Поэтому компонент SDK не загружается.

Решение состоит в том, чтобы при создании SDK ваш двоичный файл выпуска зависел от CRT выпуска, а двоичный файл отладки зависел от CRT отладки.

Дополнительные сведения о том, как работает среда выполнения C++ для приложений Магазина Windows, см. по следующей ссылке: http://blogs.msdn.com/b/vcblog/archive/2012/09/28/10354327.aspx


Обновите, что теперь он работает в Visual Studio 2013.

Использование Visual Studio 2013

В Visual Studio 2013 пакет AppX для отладки VCLibs содержит библиотеки DLL Debug и Release CRT. Таким образом, в конфигурации отладки приложение зависит от CRT отладки, а двоичные файлы Extension SDK зависят от CRT выпуска. Обе библиотеки DLL находятся в пакете VCLibs Debug AppX. Так что это работает.

person Raman Sharma    schedule 21.12.2012