Ошибка в Visual Studio 2015 package.appxmanifest для ms-appx-web на стартовой странице?

Я создаю универсальное приложение Javascript для Windows 10. Он жаловался на использование javascript, встроенного в html, из-за наличия тегов script внутри моего файла .html.

«CSP14312: ресурс нарушил директиву script-src ms-appx: unsafe-eval в политике, определяемой хостом: встроенный скрипт. Ресурс будет заблокирован».

Итак, я провел небольшое исследование в Интернете, и оказалось, что я могу избежать этой ошибки, выполнив две вещи:

Откройте package.appxmanifest:

  1. добавить на стартовую страницу:

    StartPage="ms-appx-web:///index.html"

  2. Добавьте в package.appxmanifest:

    ‹uap:ApplicationContentUriRules› ‹uap:Rule Match="ms-appx-web:///" Type="include" WindowsRuntimeAccess="allowForWebOnly" /› ‹/uap:ApplicationContentUriRules›

(Вы правильно прочитали: нам нужно 3 слэша... ///)

Теперь это отлично работает, и моя программа теперь работает без ошибок. Но я заметил, что если я изменю начальную страницу через графический интерфейс, он не сможет ее сохранить, потому что жалуется, что это недопустимый uri. Таким образом, единственный способ сделать это — щелкнуть правой кнопкой мыши package.appxmanifest и выбрать «просмотреть код», а затем сделать это с помощью кода. (На самом деле № 2 выше можно сделать только с помощью кода).

Может кто подскажет, может я что-то не так сделал? Вот скриншот, делающий это через графический интерфейс:

Ошибка по сравнению с 2015 годом?


person Shai UI    schedule 05.10.2015    source источник


Ответы (1)


Я видел, что была зарегистрирована аналогичная ошибка - при использовании того же формата uri в настройке URI содержимого манифеста возникает та же проблема. Это потому, что правило проверяет, есть ли у uri хост. Если хост uri имеет значение null или пуст, проверка uri завершается ошибкой.

Кажется, команда VS рассматривает возможность удаления этого правила, поэтому я думаю, что оно будет исправлено в будущем выпуске, но я не могу сказать, в каком обновлении будет исправление.

person Alan Yao - MSFT    schedule 05.10.2015