我有两个.NET标准1.4c#项目不正确的NuGet项目引用的问题但是没有问题,本地
- Ninja.Abstractions
- Ninja.Domain
Ninja.Domain参考文献Ninja.Abstrac和。
GeneratePackageOnBuild是
true
这两个项目他们都有下面的代码在* .csproj的文件
<PropertyGroup> <BuildNumber Condition=" '$(BuildNumber)' == '' ">0.0.0</BuildNumber> <VersionPrefix>$(BuildNumber)</VersionPrefix> <VersionSuffix Condition=" '$(Configuration)' == 'Debug' ">dev</VersionSuffix> </PropertyGroup>
- 当我编译该项目时,我没有收到错误信息,并且一切都很正常。
在vsts我删除被称为Ninja.Host三号项目,所以请忽略该项目,因为它仅仅是用于演示目的。
在vsts我只能做恢复和构建没有包也不发布。
我通过参数作为
/p:BuildNumber=$(Build.BuildNumber)
推BuildNumber
值构建任务我通过复制任务
复制
**/*.nupkg
到$(build.artifactstagingdirectory)\nuget
目录当我排队的基础上vsts我在下面发出警告。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.nupkg和Ninja.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文件,但它会迫使我手动跟踪引用这是不是我想这样做。
我很感激任何负担能帮我解决这个问题。
谢谢!它没有通过版本号和依赖版本变成'1.0.353-dev',这意味着它被称为** Debug **配置。 _(这是一个问题,但不是在我的情况下)_ 我用'--configuration $(BuildConfiguration)'调用它不起作用,我将它改为'/ p:Configuration = $(BuildConfiguration)'和有效。 因此,基本上我需要添加'/ p:Configuration = $(BuildConfiguration)/ p:BuildNumber = $(Build.BuildNumber)'到'dotnet restore' 您保存了我的一天,再次感谢您! – cilerler