Мне нужно это для сервера сборки - я бы хотел избежать установки полной 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 все еще что-то не хватает...