gpt4 book ai didi

tfs - "Nuget pack"似乎忽略了 BasePath 参数

转载 作者:行者123 更新时间:2023-12-02 00:16:22 25 4
gpt4 key购买 nike

我正在尝试使用我们的 TFS 2013 版本创建 NuGet 包。我基本上就跟着THIS步骤和本地一切正常。
但我们的构建不使用默认输出目录,这似乎会使 nuget pack 命令崩溃。
在我的本地计算机上,所有内容都构建到 SOLUTION/PROJECT/bin/Release 中,但 TFS Build 使用 BUILD/Sources/SOLUTION/PROJECT 作为源,并使用 BUILD/Binaries/Release 作为其输出目录。运行构建我收到以下日志/错误:

BuildPackage:
"D:\BUILD\Sources\SOLUTION\.nuget\NuGet.exe" pack "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" Attempting to build package from 'PROJECT.csproj'.

D:\BUILD\Sources\SOLUTION\.nuget\NuGet.targets(133,5): error : Unable to find 'D:\BUILD\Sources\SOLUTION\PROJECT\bin\Release\PROJECT.dll'. Make sure the project has been built.

然后,我将 -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 构建中遇到了与您完全相同的问题。问题是当 NuGet pack使用 csproj 调用文件,它从字面上评估 csproj作为 MSBUILD 文件,默认 OutDir MSBUILD 属性设置为 {ProjectDir}\bin\{ConfigurationName} .

但在 TFS 构建中,输出目录通常设置为暂存位置,例如 BUILD/Binaries/Release在你的情况下。

你缺少的是这个OutDir属性至NuGet pack ,这是一个应该适合您的示例:

<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform);OutDir=$(OutDir)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols -NoPackageAnalysis -BasePath "$(TargetDir)"</BuildCommand>

有了这个额外的OutDir属性,NuGet 应该能够找到新构建的二进制文件并将它们添加到包中。

关于tfs - "Nuget pack"似乎忽略了 BasePath 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29654744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com