Ориентация на несколько фреймворков с помощью скрипта Cake

Недавно коллега добавил поддержку .NET Standard в один из наших проектов, используя новый формат VS2017 .csproj:

введите здесь описание изображения

Похоже, это сломало мой сценарий, поскольку я получаю следующую ошибку при использовании псевдонима Cake MSBuild (http://cakebuild.net/api/Cake.Common.Tools.MSBuild/MSBuildAliases/C240F0FB):

ошибка: проект «C:\example\path\myproj.csproj» нацелен на «.NETFramework, версия = v4.6.1». На него не может ссылаться проект, предназначенный для «.NETStandard,Version=v1.6».

Поддерживает ли Cake сборку с использованием нескольких фреймворков с использованием нового формата проекта VS2017? Если да, то есть ли способ сделать это с помощью аргумента MSBuildSettings, который я могу передать псевдониму MSBuild? Большое спасибо.


person Ryan    schedule 21.07.2017    source источник


Ответы (1)


Yes Cake полностью поддерживает сборку проектов VS2017 с использованием последней версии .NET SDK 1.0.4 и MSBuild 15.x.

Сам Cake создан с использованием Cake, VS2017 и .NET Core SDK 1.0.4 https://github.com/cake-build/cake

При использовании псевдонима MSBuild убедитесь, что вы используете правильную версию MSBuild, установив Версия инструмента на MSBuildToolVersion.VS2017.

MSBuild("./src/Cake.sln", 
    new MSBuildSettings { ToolVersion = MSBuildToolVersion.VS2017
});

Если у вас установлен VS2017 в нестандартном месте, вы можете использовать инструмент VSWhere и псевдоним, чтобы найти правильный путь MSBuild.

#tool nuget:?package=vswhere 

DirectoryPath vsLatest = VSWhereLatest();

FilePath msBuildPathX64 = (vsLatest==null) ? null : vsLatest.CombineWithFilePath("./MSBuild/15.0/Bin/amd64/MSBuild.exe"); 

MSBuild("./src/Example.sln", 
    new MSBuildSettings { ToolPath = msBuildPathX64
}); 

Подробнее об этом читайте по адресу: http://cakebuild.net/blog/2017/03/vswhere-and-visual-studio-2017-support

person devlead    schedule 22.07.2017