来自PCL的NuGet包

时间:2018-01-18 10:49:34

标签: xamarin nuget visual-studio-2017 portable-class-library

我有一个 PCL 库我想以NuGet包的形式发布。

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

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解决方案,尝试在两个项目中安装软件包。
  5. 我使用的一些参考文献:

1 个答案:

答案 0 :(得分:1)

  

如何从PCL库制作nuget包并在PCL库中使用它?

我已经下载了你的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库,因此根据文档Portable Class Library (PCL) profiles,目标应为.net45 + Profile49, nuget目标应该是 portable-net45 + wp8

enter image description here

enter image description here

<强> 2。将该软件包安装到两个项目中:

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

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

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

enter image description here

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

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

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

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