将所有依赖项添加到包中。
我尝试了多种方法,但看起来我可能不得不弄乱它,因为依赖项的解析方式,添加一个nuspec文件是不够的。
要把它放到透视图中如果我打包一个.net框架项目带有一个nuspec文件,并且在文件中指向一个构建的相关输出文件夹(例如bin \ release)我需要的一切。
我的用例是在CI管道中运行一些验收测试(在流程外)。此时我不想访问源代码控制。
答案 0 :(得分:3)
查看NuGet.Build.Tasks.Pack
如果您在NuGet.Build.Tasks.Pack
引用,则可以使用.nuspec文件打包项目。我已经完成了这项工作,将我的解决方案中的多个项目汇总到一个nuget包中。
您可以使用dotnet.exe
打包:
dotnet pack <path to .csproj file> /p:NuspecFile=<path to nuspec file> /p:NuspecProperties=<> /p:NuspecBasePath=<Base path>
或MSBuild:
msbuild /t:pack <path to .csproj file> /p:NuspecFile=<path to nuspec file> /p:NuspecProperties=<> /p:NuspecBasePath=<Base path>
更多细节可以在这里找到: https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets#packing-using-a-nuspec
答案 1 :(得分:0)
好的,所以这不是一个特别不寻常的用例,但.NET framework
nuget包装没有仪式。
所以我正在部署一个包,它包含一些测试程序集以及Nunit控制台运行程序成功执行所需的所有相关依赖项(程序集和appsettings文件)
我们提出的解决方案是使用DotNetCorePublish
和OctoPack
(为了方便而不是nuget pack)
所以DotNetCorePublish协调所有第三方依赖项并创建一个文件夹(默认情况下名为publish),其中包含执行任何测试所需的所有内容(因此这是我已经学过的Framework dependent部署)
然后将OctoPack配置为指向我们要打包的内容。因此,将其设置为相关文件夹(使用相关的通配符/ globs)可以获取我们需要的所有内容。即时创建nuspec文件,用于创建Nuget包。