Cake build-带PackageReferences的NugetRestore

Cake build-带PackageReferences的NugetRestore,nuget,cakebuild,Nuget,Cakebuild,我有一个Visual Studio 2017解决方案,其中包含.NET标准、.NET核心和.NET框架项目。我的.NET Framework 4.6.2项目正在.csproj文件中使用PackageReferences,而不是packages.config 这似乎是指定NuGet软件包的新方法,并将允许将来迁移到.NET标准2.0(我希望如此)。 csproj: <ItemGroup> <PackageReference Include="LanguageExt.Co

我有一个Visual Studio 2017解决方案,其中包含.NET标准、.NET核心和.NET框架项目。我的.NET Framework 4.6.2项目正在.csproj文件中使用PackageReferences,而不是packages.config

这似乎是指定NuGet软件包的新方法,并将允许将来迁移到.NET标准2.0(我希望如此)。

csproj:

<ItemGroup>
    <PackageReference Include="LanguageExt.Core">
        <Version>2.1.1</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.SqlServer.Dac">
          <Version>1.0.3</Version>
cake build是否支持这些较新的“PackageReference”

以下是我的蛋糕脚本中的一段:

// NuGet restore packages for .NET Framework projects (and .NET Core projects)
Task("NuGet-Restore")
    .IsDependentOn("Clean")
    .Does(() =>
    {
        NuGetRestore(solutionFile);
    });

// NuGet restore packages for .NET Core projects only
Task("DotNetCoreRestore")
    .IsDependentOn("NuGet-Restore")
    .Does(() =>
    {
        var settings = new DotNetCoreRestoreSettings
        {
            ArgumentCustomization = args => args.Append("/p:Version=" + versionPrefix + "-" + versionSuffix)
        };
        DotNetCoreRestore(settings);
    });

// Build our solution
 Task("Build")
    .IsDependentOn("DotNetCoreRestore")
    .Does(() =>
    {
        DotNetCoreBuild(
            solutionFile,
            new DotNetCoreBuildSettings()
            {
                ArgumentCustomization = args => args.Append("/p:Version=" + versionPrefix + "-" + versionSuffix),
                Configuration = configuration
            });
    });

你用的是什么版本的蛋糕?Net核心别名最近进行了更新,以反映API表面的一些更改。如果尝试以下操作,会发生什么情况:

var settings = new DotNetCoreRestoreSettings
{
    ArgumentCustomization = args => args.Append("/p:Version=" + versionPrefix + "-" + versionSuffix)
};

DotNetCoreRestore(solutionFile, settings);
i、 e.包括解决方案文件的路径

根据这个例子:


我下载了你的回购协议,并将其建立起来。使用下面的生成定义。它在Visual Studio中工作的原因是它使用MSBuild和Nuget.exe。不要在NET Framework上调用DotNetCoreX命令

Task("Build")
    .IsDependentOn("NuGet-Restore")
    .Does(() => {
        MSBuild(solutionFile);
});

是的,他们是,你能分享你如何用你的cake脚本进行恢复和构建吗?@devlead更新。我在cake 0.19.4上。刚刚用最新版本的Cake 0.21.1尝试了你的建议,我得到了同样的错误。如果我将项目转换为使用packages.config而不是packagesreferences,它会正常工作,这是公共回购协议吗?i、 我们可以看一下吗?这里有一个回购的例子:。运行。\build.ps1,它将失败
Task("Build")
    .IsDependentOn("NuGet-Restore")
    .Does(() => {
        MSBuild(solutionFile);
});