【发布时间】:2015-06-21 16:20:02
【问题描述】:
我正在尝试使用我们的 TFS 2013 构建创建一个 NuGet 包。我基本上遵循THIS 的步骤,并且在本地一切正常。
但是我们的构建不使用默认输出目录,这似乎使nuget pack 命令崩溃。
在我的本地计算机上,所有内容都构建到 SOLUTION/PROJECT/bin/Release 中,但 TFS 构建使用 BUILD/Sources/SOLUTION/PROJECT 作为源,并使用 BUILD/Binaries/Release 作为其输出目录。运行构建我得到以下日志/错误:
构建包:
"D:\BUILD\Sources\SOLUTION\.nuget\NuGet.exe" 包 "D:\BUILD\Sources\SOLUTION\PROJECT\PROJECT.csproj" -Properties "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”。确保项目已构建。
然后我将-BasePath "$(TargetDir)" 添加到NuGet.targets 中的BuildCommand,但仍然没有变化:
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols -NoPackageAnalysis -BasePath "$(TargetDir)"</BuildCommand>
如何让 NuGet 使用 TFS 加载正确的文件?
更新:
我找到了一个解决方法:如果我将项目的构建输出路径设置为与我们的 TFS 构建使用的相同“相对路径”,它就可以工作...
但这不可能是解决方案,对吧?
【问题讨论】:
标签: tfs msbuild nuget tfsbuild nuget-package