我正在尝试为存在两个版本的库创建一个nuget包,每个版本都针对两个不同的.NET版本。
这是我的文件夹结构:
您可以看到我的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版本)。
答案 0 :(得分:2)
不确定是否正确理解-您有一个库,想要将其构建为两个版本(net452和netcore)。
您是否尝试将以下项目添加到* .csproj?
<PropertyGroup>
<TargetFrameworks>net45;netcoreapp2.0</TargetFrameworks>
</PropertyGroup>
然后您就可以在项目中使用build的两个输出