Как создать приложение Windows Store 8.1 без Visual Studio?
Мне нужно это для сервера сборки - я бы хотел избежать установки полной Visual Studio там.
Я использую новейший v12 MSBuild для создания решения с помощью приложения. Установка .NET Framework 4.5.1 и Windows 8.1 SDK заставила меня пройти несколько ошибок компиляции. Со всем этим, прямо сейчас, я получаю следующее:
ошибка MSB4019: импортированный проект "C:\Program Files (X86)\MSBuild\Microsoft\WindowsXaml\v12.0\Microsoft.Windows.UI.Xaml.CSharp.targets" не был найден. Убедитесь, что путь в объявлении правильно, и что файл существует на диске.
Файл целей присутствует на моей машине разработки с установленным Visual Studio 2013, поэтому я предполагаю, что он появился там с VS 2013. Когда я попытался вставить всю папку на машину сборки (я знаю, глупая вещь, чтобы сделать), Я получил следующие предупреждения и ошибки компиляции:
предупреждение MSB3644: эталонные сборки для фреймворка ".NETCore, Version = v4.5.1" не были найдены. Чтобы решить эту проблему, установите SDK или Targeting Pack для этой версии фреймворка или перенастроить приложение к версии рамки, для которой у вас есть SDK или пакет таргетинга.
Ошибка XamlCompiler WMC1006: не удается разрешить сборку или файл метаданных Windows 'System.Runtime.dll'
Xaml Внутренняя ошибка ошибки WMC9999: Тип юниверса не может разрешить сборку: System.Runtime, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a.
Очевидно, что копирование и вставка материала вокруг - это не путь. Есть ли подходящий подход для достижения того, чего я хочу?
РЕДАКТИРОВАТЬ: У машины сборки установлен Windows Server 2012, а не Windows 8.1. Это может быть проблема?
ИЗМЕНИТЬ 2: После сравнения выходов msbuild, выполненных как на машине разработки, так и на сервере сборки, я заметил, что на машине сборки отсутствует папка C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5.1
(есть только 4.5 папки), После его вставки, я получил следующую ошибку:
Ошибка CompileXaml WMC9998: отказ генерации XBF из-за отсутствия Поддержка Windows 8.1, свойство Set <DisableXbfGeneration> истинно </DisableXbfGeneration> в файле проекта и повторите попытку.
В инструментальной цепочке Windows 8.1 все еще что-то не хватает...
Ответы
Ответ 1
Так как это приложение для магазина Windows, и у Windows Server 2012 нет магазина приложений, я бы сказал, что библиотеки, необходимые для компиляции приложения, просто отсутствуют в самой ОС. Я предлагаю запустить трассировщик в окне Windows 8.1, чтобы посмотреть, какие файлы доступны во время компиляции, и скопировать их на сервер. Я не уверен, что это сработает, но это самый вероятный сценарий, о котором я могу думать. Вы можете использовать что-то вроде Process Monitor для этого
Посмотрите, какие файлы/ключи реестра доступны приложению в Windows.
Кроме того, вы можете отслеживать временную папку сборки в .net, чтобы узнать, какие сборки будут скопированы локально во время сборки.
EDIT: Microsoft официально не поддерживает эту http://msdn.microsoft.com/en-us/library/windows/apps/br211384.aspx
Ответ 2
Загрузили и установили Microsoft Build Tools 2013 на сервере сборки? Версия v2 версии MsBuild теперь выпущена как часть Visual Studio (вместо Microsoft.NET Framework), и вы захотите использовать эту отдельную установку, чтобы получить бит MsBuild v12 на сервере сборки.
Ответ 3
Я только что сделал это несколько недель назад для приложения для Windows 8, поэтому он должен быть таким же для Windows 8.1. Пока строительная машина работает под управлением Windows 8.1, все, что вам нужно сделать, это установить последнюю версию Visual Studio Express для приложений Windows Store на машине сборки, и все должно быть в порядке. Он должен установить все, что вам нужно.