根据nuspec文件

时间:2019-09-18 08:32:02

标签: c# .net msbuild nuget packaging

我正在尝试为存在两个版本的库创建一个nuget包,每个版本都针对两个不同的.NET版本。

这是我的文件夹结构:

enter image description here

您可以看到我的nuspec文件是csproj上方的一个目录(位于/ net452和/netcoreapp2.0文件夹中)。

我正在使用以下命令行来构建我的nuget包:

  

nuget pack。\ my.nuspec -properties Configuration =发布-Build

问题在于,由于csproj文件与nuspec文件不在同一文件夹中,因此无法实现构建。

请注意,如果两个项目都是事先手动构建的,则打包效果很好。

我对这个过程很陌生,不确定在那种情况下该怎么做,是否有一种简单的方法可以引用nuspec中的2 csproj 或-假设我想要保持此文件夹结构-我是否需要制作一个脚本,该脚本首先构建项目,然后调用nuget pack

EDIT :为了澄清我的问题,我确实有两个不同的csproj文件,分别包含在/ net452和/netcoreapp2.0中,并且它们在各自目录中编译源代码以产生两个不同的dll。然后在我的nuspec文件中引用了这两个dll,以便使用以下语法在net452或netcoreapp2.0中提供我的软件包:

  <files>
    <file src="lib\**" target="lib" />
  </files>

注意:在我手动编译了两个项目之后,目录如下所示(请注意lib文件夹包含一个net452和netcoreapp2.0文件夹以及相应的dll版本)。

enter image description here

1 个答案:

答案 0 :(得分:2)

不确定是否正确理解-您有一个库,想要将其构建为两个版本(net452和netcore)。

您是否尝试将以下项目添加到* .csproj?

<PropertyGroup>
    <TargetFrameworks>net45;netcoreapp2.0</TargetFrameworks>
</PropertyGroup>

然后您就可以在项目中使用build的两个输出