Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.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
Visual studio 使用VST和nuget Pack自动添加nuget依赖项_Visual Studio_Nuget_Azure Devops_Nuspec_Nuget Spec - Fatal编程技术网

Visual studio 使用VST和nuget Pack自动添加nuget依赖项

Visual studio 使用VST和nuget Pack自动添加nuget依赖项,visual-studio,nuget,azure-devops,nuspec,nuget-spec,Visual Studio,Nuget,Azure Devops,Nuspec,Nuget Spec,我正在使用VisualStudioTeamServices为作为Nuget包发布的库运行构建 该项目包含一个nuspec文件,该文件指定名称、描述、项目url和其他静态信息 此nuspec文件在VSTS中的Nuget pack生成操作中引用 我也希望包含有关依赖关系的信息,但是,我不希望在nuspec XML中手动管理这些信息(容易出错且耗时) nuspec文件不包含该元素,因此我希望VSTS NuGet pack操作会自动包含它们 有什么方法可以实现这一点吗?您可以使用新的“SDK样式”cs

我正在使用VisualStudioTeamServices为作为Nuget包发布的库运行构建

该项目包含一个nuspec文件,该文件指定名称、描述、项目url和其他静态信息

此nuspec文件在VSTS中的Nuget pack生成操作中引用

我也希望包含有关依赖关系的信息,但是,我不希望在nuspec XML中手动管理这些信息(容易出错且耗时)

nuspec文件不包含该元素,因此我希望VSTS NuGet pack操作会自动包含它们

有什么方法可以实现这一点吗?

您可以使用新的“SDK样式”csproj格式将NuGet关注点移动到单个csproj文件中,该文件允许您在一个位置指定依赖项和静态元数据

最好从创建.NET标准库开始,并将
属性从
netstandard2.0
更改为以前的目标框架,例如
net452
。(或选择适当的.NET标准版本)

此项目类型可以使用
msbuild/t:Pack
dotnet Pack


添加project或NuGet包引用时,这些引用将在打包期间自动变为依赖项,如果通过通配符(
1.2.*
)引用包,则包将取决于还原期间解析的版本。VS提供了一个对话框,用于在项目属性中编辑此项目类型的包元数据。

显然,存在一个非常简单的解决方案。
您可以将VSTS Nuget pack任务设置为使用csproj文件(而不是nuspec),但它仍将访问nuscpec以获取元数据。请参阅以下日志:


重申一下,与其在VSTS中的构建任务中设置nuspec文件的模式,不如设置csproj文件的路径。

@MarinaLiu MSFT-还没有,所以需要我再考虑5个小时:)哦,忘记提醒了,在你发布答案后需要48小时。所以你可以以后再做。