但是我们的构建不使用默认输出目录,这似乎会导致
nuget pack
命令失败。在我的本地机器上,所有内容都构建到
SOLUTION / PROJECT / bin / Release
中,但是TFS构建使用BUILD / Sources / SOLUTION / PROJECT
作为其源目录,BUILD / Binaries / Release
作为其输出目录。 运行构建,我得到以下日志/错误:
BuildPackage:
“D:\ BUILD \ Sources \ SOLUTION \.nuget \ NuGet.exe”pack“D:\ BUILD \ Sources \ SOLUTION \ PROJECT \ PROJECT.csproj”-属性“Configuration = Release; Platform = AnyCPU”-NonInteractive -OutputDirectory“D:\BUILD \ Binaries \ Release”-symbols-NoPackageAnalysis-BasePath“D:\ BUILD \ Binaries \ Release” 尝试从“PROJECT.csproj”构建包。D:\ BUILD \ Sources \ SOLUTION \.nuget \ NuGet.targets(133,5):错误:无法找到“D:\ BUILD \ Sources \ SOLUTION \ PROJECT \ bin \ Release \ PROJECT.dll”。请确保已经构建了该项目。
然后我在NuGet.targets
的BuildCommand
中添加了-BasePath“ $(TargetDir)”
,但仍然没有改变:
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols -NoPackageAnalysis -BasePath "$(TargetDir)"</BuildCommand>
如何告诉NuGet使用TFS加载正确的文件?
更新:
我找到了一个解决办法:如果我将项目的构建输出路径设置为与我们的TFS构建使用的相同的“相对路径”,它就可以工作...
但这不能是最终解决方案,对吧?