创建一个基本的NuGet包

时间:2014-01-27 23:29:50

标签: c# nuget nuget-package

我有一个包装Dapper.net的小型c#库,我想为这个库创建一个nuget包。我创建了一个包含以下内容的文件夹:

Nuget-Package\
Nuget-Package\Package.nuspec
Nuget-Package\lib\
Nuget-Package\lib\DapperWrapper.dll

这是nuspec

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>GoDaddy.Data</id>
    <version>1.0.0</version>
    <authors>Owner Name</authors>
    <owners>Owner Name</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>I provide a fast and slim layer between your code and stored procedures that your application needs to use. This layer provides more straight-forward access to procs than straight ADO and less overhead than using Entity or Linq. It currently uses Dapper.Net to do some of this work.</description>
    <releaseNotes>Initial Release</releaseNotes>
    <copyright>Copyright 2014</copyright>
    <tags>ADO Dapper Proc "Stored Procedure"</tags>
    <dependencies>
      <dependency id="Dapper" version="1.13" />
    </dependencies>
  </metadata>
</package>

然后我将生成的DapperWrapper1.0.0.0.nupkg复制到我的本地nuget服务器。

在此之后,我尝试将其安装在控制台应用程序上。我打开一个简单的控制台应用程序,右键单击引用并说管理nuget包。我找到并选择我的包并选择安装并得到以下错误:

Attempting to resolve dependency 'Dapper (≥ 1.13)'.
External packages cannot depend on packages that target projects.

我在这里做错了什么?

看起来太简单了,但我似乎无法在任何地方找到这个错误的好解释。

2 个答案:

答案 0 :(得分:0)

答案可以在这里找到。 http://www.marcusoft.net/2011/12/creating-tools-only-nuget-package.html

显然nuget不会解析依赖关系,除非你同时拥有“lib”和“content”文件夹,即使你没有使用它们。

哇,这是IMO的错误。

答案 1 :(得分:0)

请参阅此nuget工作项目:http://nuget.codeplex.com/workitem/595

您可以尝试将文件部分添加到nuget包中,引用项目中的文件。