Я использую Visual Studio 17 для создания Windows-приложения Cordova, имеющего плагин uwp. Этот плагин ссылается на компонент среды выполнения Windows (этот тип выходного файла компонента .winmd
).
Когда я устанавливаю минимальное значение Windows target sdk равным 10.16299.0, тогда я не могу создать объект класса, который находится в Компоненте времени выполнения Windows (который находится в файле winmd и ссылается на некоторые dll (.net core 2.0))но когда я понижаю минимальный целевой уровень Windows SDK до 10.15063.0 или ниже, проблема решается.
Требуется, чтобы я использовал Windows SDK v10.16299.0 в качестве минимальной версии и v10.17763.0 в качестве макс.цель.Могу ли я сделать это?PLease help ..
This is my cordova plugin's plugin.xml
<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-plugin-uwp" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>Uwp</name>
<js-module name="Uwp" src="www/Uwp.js">
<clobbers target="cordova.plugins.uwp" />
</js-module>
<platform name="windows">
<js-module name="UwpProxy" src="src/windows/UwpProxy.js">
<merges target="" />
</js-module>
<resource-file src="src/windows/libs/Component.dll" target="Component.dll" device-target="windows" reference="true" />
<resource-file src="src/windows/libs/SmartThreadPool.NetCore.dll" target="SmartThreadPool.NetCore.dll" device-target="windows" reference="true" />
<framework src="src/windows/libs/CCRuntimeComponent.winmd" custom="true" implementation="src/windows/libs/Component.dll"/>
</platform>
</plugin>
In UwpProxy.js I am trying to create an object of the winrt class
this.setUwpWinRT(CCRuntimeComponent.UwpWinRT.instance);//(with 15063 its created but not with 16299)
if (this.getUwpWinRT() != null || this.getUwpWinRT() != undefined) {
if (this.getUwpWinRT().getJsCallback() == null || this.getUwpWinRT().getJsCallback() == undefined)
this.getUwpWinRT().setJsCallback(this.messageCallback.bind(this));
else throw new Error("Unable to set WinRT callback.");
if (options != null || options != undefined) {
this.setUiCallback(options[0].callback);
}
}
}
это ошибка, которая выдается каждый раз, когда я устанавливаю минимальную цель v10.16299.0
0x80131040 - JavaScript runtime error: Unknown runtime error occurred
WinRTError: Unknown runtime error
at UwpProxy.prototype.init (ms-appx-web://io.cordova.myapp5447c6/www/plugins/cordova-plugin-uwp/src/windows/UwpProxy.js:55:9)
at startConnection (ms-appx-web://io.cordova.myapp5447c6/www/plugins/cordova-plugin-uwp/src/windows/UwpProxy.js:100:13)
at Anonymous function (ms-appx-web://io.cordova.myapp5447c6/www/plugins/cordova-plugin-uwp/src/windows/UwpProxy.js:107:17)
at notifySuccess (ms-appx-web://io.cordova.myapp5447c6/www/WinJS/js/base.js:2110:21)
at state_success_notify.enter (ms-appx-web://io.cordova.myapp5447c6/www/WinJS/js/base.js:1792:21)
at _run (ms-appx-web://io.cordova.myapp5447c6/www/WinJS/js/base.js:2008:17)
at _completed (ms-appx-web://io.cordova.myapp5447c6/www/WinJS/js/base.js:1976:13)
ОБНОВЛЕНИЕ -----
Я прошел через проблему снова и обнаружил, что проблема в компоненте среды выполнения Windows, который не поддерживает 16299 версию Windows SDK.Всякий раз, когда я использовал v15063, я мог создавать экземпляры компонента времени выполнения Windows в файле javascript, но с v16299 не мог даже вызывать статическую функцию.
Есть ли какое-либо решение для этой конкретной проблемы?