最近,我开始从我的几个项目中打包nuget软件包。首先,我从Package应用程序开始。这是一个很好的工具,但是如果您进行持续的集成,它就不太有用了。然后,我研究了指定nuspec模板文件,并将更改的数据(例如版本号)作为命令行参数传递。稍后,我想知道如何定义nuget包依赖项。事实证明,如果您指定了一个csproj,那么nuget.exe已经基于package.config执行了这个任务。并从装配信息中提取作者、版本、版权等相关数据。我现在缺少的是在命令行中指定licenseUrl的能力。但我希望这个问题更通用。所以我想问:
,什么是包装nuget包的首选方法?
发布于 2013-02-11 08:05:25
这里有一个鲜为人知的事实:,您可以将这两个结合起来!针对一个csproj文件,并确保在同一个目录中有一个与csproj文件同名的nuspec文件。NuGet将在包创建期间合并这两者。
因此,简而言之:目标<ProjectName>.csproj,可以选择添加一个相应的http://docs.nuget.org/docs/reference/nuspec-reference#Replacement_Tokens <ProjectName>.nuspec文件,以作为NuGet.exe的元数据。
它可以帮助您避免管理输出位置、依赖项、版本和其他可以从项目派生的内容。
发布于 2013-02-10 14:06:40
对于简单的包,可以直接在.csproj或.vbproj上创建包。但是对于更多的高级包,特别是当您需要将自定义文件放入包中时,您需要使用.nuspec。我通常从csproj开始,根据需要迁移到nuspec。您始终可以使用csproj上的命令nuget spec获取nuspec。
https://docs.nuget.org/create/creating-and-publishing-a-package
可以使用licenseUrl的Properties参数指定任何属性,包括nuget pack
nuget pack -properties licenseUrl=http://blah发布于 2017-02-03 00:41:21
使用Visual 2017的.csproj,您不需要.nuspec文件。实际上,您可以将这些值直接添加到csproj中,然后它将获取它们。
右键单击Visual中的项目,编辑xxxxx.csproj。记事本也很好。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Version>1.0.1</Version>
<authors>Subtracts</authors>
<TargetFrameworks>netstandard1.6;net452</TargetFrameworks>
<AssemblyName>Checkout.net</AssemblyName>
<PackageId>Checkout.net</PackageId>
...
</Project>附注:由于我没有足够的声誉来发表评论,所以我会留下一个答案,而不是对泽维尔的回答发表评论。:)
https://stackoverflow.com/questions/14797525
复制相似问题