Если вы используете ссылки на проекты и строите как часть одного и того же решения, вы должны быть в состоянии правильно получить все ссылки.Вот как создается сам Cake.
- Cake.exe / dll зависит от
- Cake.Core
- Cake.Common, который зависит от
Когда мы создаем 0.30.0
, мы передаем эту версию как общие MSBuildSettings для восстановления.Сборка и упаковка.Грубый пример
string configuration = "Release",
version = "0.30.0",
semVersion = "0.30.0"; // for pre-release this is suffixed i.e. -alpha-001
DotNetCoreMSBuildSettings msBuildSettings = new DotNetCoreMSBuildSettings()
.WithProperty("Version", semVersion)
.WithProperty("AssemblyVersion", version)
.WithProperty("FileVersion", version);
DotNetCoreRestore("./src/Cake.sln", new DotNetCoreRestoreSettings
{
Verbosity = DotNetCoreVerbosity.Minimal,
Sources = new [] { "https://api.nuget.org/v3/index.json" },
MSBuildSettings = msBuildSettings
});
DotNetCoreBuild("./src/Cake.sln", new DotNetCoreBuildSettings()
{
Configuration = configuration,
NoRestore = true,
MSBuildSettings = msBuildSettings
});
var projects = GetFiles("./src/**/*.csproj");
foreach(var project in projects)
{
DotNetCorePack(project.FullPath, new DotNetCorePackSettings {
Configuration = configuration,
OutputDirectory = "./nuget,
NoBuild = true,
NoRestore = true,
IncludeSymbols = true,
MSBuildSettings = msBuildSettings
});
}
Ссылка на проект в .NET Core csproj выглядит как
<ProjectReference Include="..\Cake.Core\Cake.Core.csproj" />