Я считаю, что стандартный код платформы .Net не может быть создан в Linux, поэтому я думаю, что мы не можем создавать и развертывать стандартный код платформы .Net (не ядро .Net) с использованием Jenkins, работающего в Linux.
Есть ли способ добиться этого? Можем ли мы добавить ведомого Windows, чтобы сделать это?
Да, я имел в виду полный .net framework. Могу ли я добавить ведомое устройство Windows на Jenkins, развернутое на сервере Linux, и использовать его для компиляции кода?
Это зависит от того, что именно вам нужно.
В настоящее время разрабатывается новая инфраструктура сборки, которая должна позволить вам создавать множество библиотек .NET Framework и консольных приложений на каждой платформе, поддерживаемой .NET Core.
См. дизайн PR для простого приобретения .NET Framework Targeting Pack, в котором описываются пакеты, находящиеся в настоящее время в предварительном просмотре, которые можно использовать в проекте через
<PackageReference Include = "Microsoft.NETFramework.ReferenceAssemblies"
Version = "1.0.0-preview.1"
PrivateAssets = "All" />
Другим вариантом может быть установка mono и использование команды mono msbuild
для сборки существующих проектов .NET Framework, хотя могут быть некоторые отличия в отношении разрешения сборки при использовании определенных пакетов NuGet.
Однако нет инструментов для более сложных сценариев, таких как приложения WPF или ASP.NET (классические), а также инструменты EF 6 .edmx.
Спасибо за ваш быстрый ответ. Могу ли я добавить ведомое устройство Windows в Jenkins, развернутое в Linux, для компиляции полной платформы .net (приложения asp.net, wpf)?
Да, вы должны иметь возможность использовать ведомые устройства сборки Windows. Пожалуйста, обратитесь к документации Jenkins или задайте новый вопрос, если у вас возникнут проблемы.
Да, вы можете иметь Jenkins Master в Linux с узлами Windows (и узлами Linux тоже); мы делаем. Рассмотрите возможность использования меток, чтобы определить, какие задания должны быть ограничены для запуска.
под
standard .Net framework
вы имеете в видуFull .Net Framework
, а не.Net Standard
или.Net Core
правильно? Если да, то нет, вы не можете этого сделать. Полный фреймворк зависит от Win32.