我刚开始尝试使用Visual Studio Team Services来配置CI/CD进程,以便进行门控签入过程,然后该进程会自动打包并将输出推送到私人NuGet Feed。我成功地通过在构建定义本身存在的,但是我的包任务失败在这个阶段,“获取源”任务获得:如何使用Visual Studio Team Services更正CI/CD NuGet包构建的输出目录?
d:\a\_tool\NuGet\4.0.0\x64\nuget.exe pack
d:\a\1\s\Core\Core\Core.csproj -NonInteractive -
OutputDirectory d:\a\1\a -Properties Configuration=$Release;OutDir=$(OutDir)
-Symbols -version 1.0.0-CI-20170811-095629 -Verbosity Detailed
NuGet Version: 4.0.0.2283
Attempting to build package from 'Core.csproj'.
MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin\amd64'. Use option -MSBuildVersion to force nuget to use a specific version of MSBuild.
NuGet.CommandLine.CommandLineException: Unable to find 'd:\a\1\s\Core\Core\$(OutDir)\Core.dll'. Make sure the project has been built.
从本质上讲,日志二号线表明,我的项目文件在d:\a\1\s
,但输出是针对d\a\1\a
- 不一样的地方。 NuGet打包我的文件的指令然后在正确的位置(d:\a\1\s
)中查找,但该文件不在此处。
我知道我可以在构建定义中指定一个包文件夹,但是我没有从默认值($(Build.ArtifactStagingDirectory)
)中更改它 - 我希望这可以在本机上工作,但由于我无法解释的原因,它不是。
是否有一个令牌或通配符,我可以提供一个额外的生成属性,将纠正这?我已经在这里接受了第一个发布的答案的指导,并将$(Build.ArtifactStagingDirectory)
更改为$(Build.Repository.LocalPath)
,这让我更接近目标,因为现在的错误读数为-OutputDirectory d:\a\1\s\...
- 我试过手动将各种合理的路径放在这里,但错误仍然存在。
你用我的方式解决了这个问题吗? –
@ starain-MSFT不,我恐怕在尝试在CI/CD工作流程中创建软件包时无法解决此问题。如果我使用NuPack NuGet包在解决方案中构建包并简单地发布包,它可以正常工作,但这不是我想要实现的。问题仍未解答 – Ashilta
您能否提供简单的示例/步骤来解释要求? –