我剛開始嘗試使用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
您能否提供簡單的示例/步驟來解釋要求? –