对于我的一个项目,我使用NuGet包形式的许多依赖项。当我更改其中任何一个时,我需要重新创建包并每次部署它。我们目前将Jenkins设置为我们的任务选手。我想知道有没有办法将软件包创建和部署自动化为夜间工作。
答案 0 :(得分:4)
您可以创建新的Jenkins作业并添加Windows批处理步骤。 在那里,您可以使用以下命令:
C:\J\Nuget\NuGet_2.81.exe pack “%WORKSPACE%\PhantomTube\PhantomTube.Core\PhantomTube.Core.csproj” –IncludeReferencedProjects –Version %MajorVersion%.%MinorVersion%.%PatchVersion%%PrereleaseString% -Properties Configuration=Release
您可以将一些参数添加为JOB的变量。
您可以在此处找到更详细的教程:http://automatetheplanet.com/create-jenkins-job-creating-nuget-packages/
答案 1 :(得分:3)
我已经使用Jenkins自动创建了Nuget包:
我们使用的方法是:
可以从nuspec文件或项目文件创建Nuget包。
在我们的例子中,我们使用Nuspec文件自动创建Nuget包。
我们遵循的策略是在项目目录中查找所有nuspec文件,并将nuspec文件名传递给命令Nuget pack <<Your nuspec file name goes here>>
如果您喜欢这种方法,我可以分享我的命令。
代码:
cls
@echo off
e:
cd << Directory path of your code >>
Setlocal EnableDelayedExpansion
rem automatic Packaging when a nuspec file is found
for /D /r %%A IN (*) do (
cd %%A
if exist *.nuspec (
echo ***************************************************************************************************
echo Located Nuspec file in Path : %%A
for /f %%B IN ('dir /a /b^|findstr /i "nuspec"') do set "res=%%B" & echo Found nuspec file : !res! & echo **************** & echo Packing using nuspec metadata & nuget pack !res!
)
)
答案 2 :(得分:2)
您可以向MSBuild添加目标并自动创建nuget。 http://ihadthisideaonce.com/2014/02/24/nuget-like-a-pro-the-msbuild-way/