Я создаю приложение с помощью Ionic/Cordova, которое должно работать в Windows 10. Приложение работает хорошо, когда я создаю его из Visual Studio в конфигурации «отладка» и «x64». Но когда я хочу создать пакет приложения из «Проект»> «Магазин»> «Создать пакет приложения», он завершается с ошибкой:
Error MSB6006 "ilc.exe" exited with code 1200
Копнув глубже, я могу найти на вкладке вывода ошибку:
System.InvalidOperationException: Le nom de propriété "MSBuildToolsPath" est réservé
Это на французском языке, я не могу найти эквивалент на английском, похоже, это означает «Имя свойства MSBuildToolsPath зарезервировано».
Полное сообщение об ошибке:
Task "LoggerBasedExecTask"
1> Task Parameter:Application=C:\Program Files (x86)\MSBuild\15.0\.Net\.NetNative\15.0.24211\x86\ilc\ilc.exe
1> Task Parameter:Parameters=@"build\windows\bld\ilc.CordovaApp.Windows10.rsp"
1> Task Parameter:MessageLog=C:\QUALIOS\Sources\QualiosMobile_LW\Qualios\platforms\windows\build\windows\bld\ilc\ilclog.csv
1> Task Parameter:UseCommandProcessor=False
1> C:\Program Files (x86)\MSBuild\15.0\.Net\.NetNative\15.0.24211\x86\ilc\ilc.exe @"build\windows\bld\ilc.CordovaApp.Windows10.rsp" "/logger:CsvLogger;3472;3460"
1> System.InvalidOperationException: Le nom de propriété "MSBuildToolsPath" est réservé.
1> à Microsoft.Build.Shared.ErrorUtilities.ThrowInvalidOperation(String resourceName, Object[] args)
1> à Microsoft.Build.Shared.ErrorUtilities.VerifyThrowInvalidOperation(Boolean condition, String resourceName, Object arg0)
1> à Microsoft.Build.Construction.ProjectPropertyElement.CreateDisconnected(String name, ProjectRootElement containingProject)
1> à Microsoft.Build.Construction.ProjectPropertyGroupElement.AddProperty(String name, String unevaluatedValue)
1> à Microsoft.Build.Construction.ProjectRootElement.AddProperty(String name, String value)
1> à ilc.Program.AddPropertiesToBlockEnvironmentVariables(ProjectRootElement rootElement)
1> à ilc.Program.PrepareAndRunMsbuildTargets(Package package, String intermediatesFolderName, Boolean isAppX)
1> à ilc.Program.RunIlc(String intermediatesFolderName)
1> à ilc.Program.InnerMain(String[] args)
1> à ilc.Program.Main(String[] args)
1> ILC.exe has experienced an unexpected error. Please visit http://go.microsoft.com/fwlink/?LinkID=613098 for a list of known issues.
1>
1> C:\Program Files (x86)\MSBuild\15.0\.Net\.NetNative\15.0.24211\Microsoft.NetNative.targets(640,5): error MSB6006: "ilc.exe" exited with code 1200.
1> Output Property: _IlcExitCode=1200
1> Done executing task "LoggerBasedExecTask" -- FAILED
В большинстве случаев эти ошибки исправляются путем обновления до последней версии пакета .NET Native (Майкрософт.NETCore.Универсальная платформа Windows).
Может попробовать обновить до последней версии (6.2.8)? https://github.com/Microsoft/dotnet/blob/master/releases/UWP/net-native2.2/README.md
Какую версию VS, .Net и SDK вы используете?
VS: 15.3.5 .Net: 4.7.2 SDK для Windows 10 (10.0.15063.0)
Я не думаю, что я должен использовать Microsoft.NETCore.UniversalWindowsPlatform с Cordova, если я ищу установленные nugets, он говорит «пакет не найден». У моего коллеги такой же проект, как у меня, и он может встроить в релиз
Наконец нашел решение!
Мне просто нужно было установить глобально windows-build-tools, чтобы заставить его работать. Кордова видимо нужна
npm install -g windows-build-tools
Я попытался запустить Install-Package Microsoft.NETCore.UniversalWindowsPlatform -Version 6.2.8, но получаю Install-Package: Не удалось установить пакет «Microsoft.NETCore.Jit 1.0.3». Вы пытаетесь установить этот пакет в проект, предназначенный для «UAP, версия = v10.0.10240», но пакет не содержит ссылок на сборки или файлов содержимого, совместимых с этой платформой. Для получения дополнительной информации свяжитесь с автором пакета