在我的 CI 构建中,我有 MSBuild,它将 Release 构建输出到.\.output\_Build
文件夹中;在这种情况下,这个文件夹有我想打包成 nupkg 的 exe。
当我执行时:
NuGet.exe pack -Version "0.1.0" -BasePath ".\.output\_Build" -OutputDirectory ".\.output\Packages\NuGet" ".\src\Project\Project.csproj" -Symbols -verbosity detailed -tool
BasePath
是 中的文件OutputPath
夹msbuild -OutputPath
。我得到:
Attempting to build package from 'Project.csproj'.
MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'. Use option -MSBuildVersion to force nuget to use a specific version of MSBuild.
NuGet.CommandLineException: Unable to find 'c:\project\src\.out\Debug\Project.exe'. Make sure the project has been built.
at NuGet.CommandLine.ProjectFactory.BuildProject()
at NuGet.CommandLine.ProjectFactory.CreateBuilder(String basePath)
at NuGet.CommandLine.PackCommand.BuildFromProjectFile(String path)
at NuGet.CommandLine.PackCommand.BuildPackage(String path)
at NuGet.CommandLine.PackCommand.ExecuteCommand()
at NuGet.CommandLine.Command.ExecuteCommandAsync()
at NuGet.CommandLine.Command.Execute()
at NuGet.CommandLine.Program.MainCore(String workingDirectory, String[] args)
这似乎表明 nuget 从 csproj 读取了 Debug 配置的 OutputDirectory 并且正确地找不到任何要打包的东西。我认为该-BasePath
参数会告诉它在哪里寻找工件,但看起来情况并非如此。使用 csproj 文件进行打包时,如何告诉 nuget 不要遵循 csproj 中的路径?我必须使用 csproj 文件进行打包。