2017-08-07 31 views
0
<PropertyGroup> 
     <BuildNumber Condition=" '$(BuildNumber)' == '' ">0.0.0</BuildNumber> 
     <VersionPrefix>$(BuildNumber)</VersionPrefix> 
     <VersionSuffix Condition=" '$(Configuration)' == 'Debug' ">dev</VersionSuffix> 
    </PropertyGroup> 
  • 当我编译该项目时,我没有收到错误信息,并且一切都很正常。

我删除被称为Ninja.Host三号项目,所以请忽略该项目,因为它仅仅是用于演示目的。

  • 我只能做恢复构建没有也不发布

  • 我通过参数作为/p:BuildNumber=$(Build.BuildNumber)BuildNumber构建任务 vsts tasks

  • 我通过复制任务

  • 复制**/*.nupkg$(build.artifactstagingdirectory)\nuget目录当我排队的基础上我在下面发出警告。 vsts build log

    2017-08-07T03:23:50.2098321Z [command]"C:\Program Files\dotnet\dotnet.exe" build d:\a\1\s\src\Ninja.Domain\Ninja.Domain.csproj --configuration release /p:BuildNumber=1.0.353 
    2017-08-07T03:23:50.3518364Z Microsoft (R) Build Engine version 15.1.1012.6693 
    2017-08-07T03:23:50.3518364Z Copyright (C) Microsoft Corporation. All rights reserved. 
    2017-08-07T03:23:50.3518364Z 
    2017-08-07T03:23:51.9897194Z Ninja.Abstractions -> d:\a\1\s\src\Ninja.Abstractions\bin\release\netstandard1.4\Ninja.Abstractions.dll 
    2017-08-07T03:23:52.1097005Z Successfully created package 'd:\a\1\s\src\Ninja.Abstractions\bin\release\Ninja.Abstractions.1.0.353.nupkg'. 
    2017-08-07T03:23:53.6697753Z Ninja.Domain -> d:\a\1\s\src\Ninja.Domain\bin\release\netstandard1.4\Ninja.Domain.dll 
    2017-08-07T03:23:53.7253932Z Successfully created package 'd:\a\1\s\src\Ninja.Domain\bin\release\Ninja.Domain.1.0.353.nupkg'. 
    2017-08-07T03:23:53.7267788Z C:\Program Files\dotnet\sdk\1.0.4\Sdks\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(104,5): warning : Issue found with package 'Ninja.Domain'. [d:\a\1\s\src\Ninja.Domain\Ninja.Domain.csproj] 
    2017-08-07T03:23:53.7277784Z C:\Program Files\dotnet\sdk\1.0.4\Sdks\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(104,5): warning : Issue: Prerelease dependency in stable package. [d:\a\1\s\src\Ninja.Domain\Ninja.Domain.csproj] 
    2017-08-07T03:23:53.7277784Z C:\Program Files\dotnet\sdk\1.0.4\Sdks\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(104,5): warning : Description: A stable release of a package should not have a prerelease dependency. [d:\a\1\s\src\Ninja.Domain\Ninja.Domain.csproj] 
    2017-08-07T03:23:53.7277784Z C:\Program Files\dotnet\sdk\1.0.4\Sdks\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(104,5): warning : Solution: Either modify the version spec of dependency "Ninja.Abstractions [0.0.0-dev,)" or update the version field in the nuspec. [d:\a\1\s\src\Ninja.Domain\Ninja.Domain.csproj] 
    2017-08-07T03:23:53.7297813Z 
    2017-08-07T03:23:53.7307788Z Build succeeded. 
    
  • 下载的构件,并且具有2个文件,其具有Ninja.Abstractions.1.0.353.nupkgNinja.Domain.1.0.353.nupkg

  • 开业忍。 Abstractions.nuspec这是在Ninja.Abstractions.1.0.353。nupkg

    <?xml version="1.0" encoding="utf-8"?> 
    <package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"> 
        <metadata> 
        <id>Ninja.Abstractions</id> 
        <version>1.0.353</version> 
        <authors>Ninja.Abstractions</authors> 
        <owners>Ninja.Abstractions</owners> 
        <requireLicenseAcceptance>false</requireLicenseAcceptance> 
        <description>Package Description</description> 
        <dependencies> 
         <group targetFramework=".NETStandard1.4"> 
         <dependency id="NETStandard.Library" version="1.6.1" exclude="Build,Analyzers" /> 
         </group> 
        </dependencies> 
        </metadata> 
    </package> 
    
  • 开业Ninja.Domain.nuspec这是Ninja.Domain.1.0.353.nupkg

    <?xml version="1.0" encoding="utf-8"?> 
    <package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"> 
        <metadata> 
        <id>Ninja.Domain</id> 
        <version>1.0.353</version> 
        <authors>Ninja.Domain</authors> 
        <owners>Ninja.Domain</owners> 
        <requireLicenseAcceptance>false</requireLicenseAcceptance> 
        <description>Package Description</description> 
        <dependencies> 
         <group targetFramework=".NETStandard1.4"> 
         <dependency id="Ninja.Abstractions" version="0.0.0-dev" exclude="Build,Analyzers" /> 
         <dependency id="NETStandard.Library" version="1.6.1" exclude="Build,Analyzers" /> 
         </group> 
        </dependencies> 
        </metadata> 
    </package> 
    

正如你可以看到它有<dependency id="Ninja.Abstractions" version="0.0.0-dev" exclude="Build,Analyzers" />这应该是<dependency id="Ninja.Abstractions" version="1.0.353" exclude="Build,Analyzers" />,并且在本地构建它时,此行为不适用。在Visual Studio 2017中,它构建了它假定处理正确的依赖信息的方式。

我在想加入明确的nuspec文件,但它会迫使我手动跟踪引用这是不是我想这样做。

我很感激任何负担能帮我解决这个问题。

回答

0

您还需要将/p:BuildNumber=$(Build.BuildNumber)更改为dotnet restore,因为NuGet依赖包的版本在还原时被锁定并写入obj\project.assets.json文件。请参阅GitHub上的this similar issue

+0

谢谢!它没有通过版本号和依赖版本变成'1.0.353-dev',这意味着它被称为** Debug **配置。 _(这是一个问题,但不是在我的情况下)_ 我用'--configuration $(BuildConfiguration)'调用它不起作用,我将它改为'/ p:Configuration = $(BuildConfiguration)'和有效。 因此,基本上我需要添加'/ p:Configuration = $(BuildConfiguration)/ p:BuildNumber = $(Build.BuildNumber)'到'dotnet restore' 您保存了我的一天,再次感谢您! – cilerler