Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net core 指定nuspec文件时,dotnet pack生成文件夹输出,而不是lib文件夹_.net Core_Nuget_.net Standard_.net Standard 2.0 - Fatal编程技术网

.net core 指定nuspec文件时,dotnet pack生成文件夹输出,而不是lib文件夹

.net core 指定nuspec文件时,dotnet pack生成文件夹输出,而不是lib文件夹,.net-core,nuget,.net-standard,.net-standard-2.0,.net Core,Nuget,.net Standard,.net Standard 2.0,我正在尝试向我们的CI流程添加一个步骤,该步骤是一个powershell脚本,在上一个步骤构建了.NET标准2.0项目后,该脚本将自动打包并推送该项目的nuget包。我最初使用的命令是: dotnet pack$project.csproj-c$configuration-p:PackageVersion=$version 这给了我想要的确切的项目输出。如图所示: 但是,在我们以前的nuget软件包中,我们有一些非常重要的nuspec文件,dotnet pack默认情况下不会拾取它,即使它与项

我正在尝试向我们的CI流程添加一个步骤,该步骤是一个powershell脚本,在上一个步骤构建了.NET标准2.0项目后,该脚本将自动打包并推送该项目的nuget包。我最初使用的命令是:

dotnet pack$project.csproj-c$configuration-p:PackageVersion=$version

这给了我想要的确切的项目输出。如图所示:

但是,在我们以前的nuget软件包中,我们有一些非常重要的nuspec文件,dotnet pack默认情况下不会拾取它,即使它与项目文件位于同一目录中,它也会生成一个默认文件。为了解决这个问题,我发现您可以指定nuspec文件,并将命令更新为:

dotnet pack $project.csproj -c $configuration -p:PackageVersion=$version -p:NuspecFile=$project.nuspec
这将正确地添加所需的nuspec文件,但现在nupkg没有lib文件夹而包含不需要的内容,它似乎是构建项目的输出。如图所示:

有没有办法从第一个命令和 第二个命令中指定的nuspec文件是否完全通过dotnet pack命令?我试过了 -没有构建和详细的日志记录来获取更多信息,但到目前为止运气不佳。 是否有替代nuspec文件的方法可以达到相同的效果,例如在项目文件中指定更多信息并完全删除nuspec文件?
谢谢

我可以通过简单地拒绝使用nuspec文件来解决这个问题。所需的一切都可以在csproj中完成,它可以毫无疑问地转换为dotnet pack生成的nuspec文件