我正在尝试找出如何将项目从PCL迁移到.netstandard 1.2。
我有一个解决方案,其中有一个PCL项目(portable45-net45 + win8 + wpa81)和一个.net标准的(netstandard1.2)项目它会将文件链接到到PCL项目中。
当前,我们使用nuspec文件从PCL项目创建nuget包。
现在,以1个nuget包同时提供这两种方法的最佳方法是什么?
我发现nuget pack
与dotnet pack
的使用以及将多个框架和项目类型(csproj)混合使用非常令人困惑。
似乎还为VS2017 +项目提供了一种新的csproj格式,我应该转换PCL项目吗?
最终,该nuget只应包含.netstandard1.2项目,但我们希望在迁移过程中同时使用这两个依赖关系树。
答案 0 :(得分:1)
在1个nuget包中同时提供这两种方法的最佳方法是什么?
您仍然可以使用.nuspec
文件来完成此操作,只需要将PCL项目和.Net Standard项目中的dll文件包含到不同的框架中即可。
以下是我的测试.nuspec文件,您可以检查其详细信息:
<?xml version="1.0"?>
<package >
<metadata>
<id>My.Package</id>
<version>1.0.0</version>
<authors>Tester</authors>
<owners>Tester</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Package description</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2018</copyright>
<tags>Tag1 Tag2</tags>
</metadata>
<files>
<file src="TestPCL\bin\Debug\TestPCL.dll" target="lib\portable-net45+wp8\" />
<file src="TestStandard\bin\Debug\netstandard1.2\TestStandard.dll" target="lib\netstandard1.2\" />
</files>
</package>
将此软件包安装到PCL项目和.Net Standard项目时,nuget会在项目的相应框架下选择DLL文件。