来自 PCL 的 NuGet 包

NuGet package from PCL

我有一个 PCL 库,我想将其作为 NuGet 包分发。

PCL 应用程序库属性页面的屏幕截图:

csproj 文件:

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile>Profile111</TargetFrameworkProfile>
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

重现我的问题的步骤:

  1. 从以下位置克隆两个存储库:

  2. 构建NugetPackage项目+nuget spec+nuget pack

  3. 创建指向项目文件夹的本地 nuget 包存储库。
  4. 打开 NugetConsole 解决方案并尝试在两个项目中安装包。

我使用的一些参考资料:

How can I make a nuget package from a PCL library and use it in a PCL library?

我已经下载了你的 nuget 包和测试项目,我可以创建 nuget 包并将其安装到这两个项目中。以下是我的详细步骤:

1.创建 nuget 包:

下载nuget项目,然后构建项目+nuget spec+nuget pack:

这是 .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="bin\**" target="lib\portable-net45+wp8\" />
    </files>
</package>

注意: 由于您打算将此包用于 PCL 库,因此目标应该是 .net45 + Profile49,根据对于文档 Portable Class Library (PCL) profiles,nuget 目标应该是 portable-net45+wp8:

2。将该包安装到两个项目:

从GitHub下载这两个测试项目,用Visual Studio2017打开,然后将创建的包复制到本地nuget feed:

打开包管理器控制台,使用以下命令安装包:

install-package My.Package -source D:\LocalServer

所以 nuget 包在两个项目中都是正确安装的。

注意:我在控制台应用程序的项目文件中看到以下代码:

  <ItemGroup>
    <PackageReference Include="My.Package">
      <Version>1.0.0</Version>
    </PackageReference>
  </ItemGroup>

请删除它,这不是添加 nuget 包的正确方法。