标签: nuspec

创建NuGet包时,不要包含packages.config文件中的依赖项

我正在使用Nuget来创建包.我想创建一个包,其中不包含.nuspec任何其他NuGet包的依赖(在)文件中.我的项目确实在其packages.config文件中定义了NuGet包依赖项.

首先我创建.nuspec文件...

C:\code\MySolution>.nuget\nuget.exe spec MyProject\MyProject.csproj
Run Code Online (Sandbox Code Playgroud)

我将生成的.nuspec文件编辑为最小,没有依赖项.

<?xml version="1.0"?>
<package >
  <metadata>
    <id>MyProject</id>
    <version>1.2.3</version>
    <title>MyProject</title>
    <authors>Example</authors>
    <owners>Example</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Example</description>
    <copyright>Copyright 2013 Example</copyright>
    <tags>example</tags>
    <dependencies />
  </metadata>
</package>
Run Code Online (Sandbox Code Playgroud)

然后我构建解决方案并创建一个NuGet包......

C:\code\MySolution>.nuget\nuget.exe pack MyProject\MyProject.csproj -Verbosity detailed
Run Code Online (Sandbox Code Playgroud)

这是该命令的输出......

Attempting to build package from 'MyProject.csproj'.
Packing files from 'C:\code\MySolution\MyProject\bin\Debug'.
Using 'MyProject.nuspec' for metadata.
Found packages.config. Using packages listed as dependencies

Id: MyProject
Version: 1.2.3
Authors: Example
Description: Example
Tags: example
Dependencies: Google.ProtocolBuffers (= 2.4.1.473)

Added file 'lib\net40\MyProject.dll'.

Successfully …
Run Code Online (Sandbox Code Playgroud)

dependencies package nuget nuget-package nuspec

54
推荐指数
3
解决办法
4万
查看次数

没有frameworkAssemblies,无法解决程序集引用问题

我正在尝试验证Protocol Buffers是否适用于ASP.NET团队的新移植运行时,以及大多数其他现代环境.3.0.0-alpha4版本是前一段时间使用profile259创建的,所以我希望在某些情况下需要进行一些更改,但我想我会尝试一下.我知道Oren Novotny关于针对.NET Core的帖子,并且预计必须对Google.Protobuf nuspec文件进行一些更改,但是我遇到的错误让我感到难过.

DNX版本:1.0.0-rc1-update1

我目前正在尝试测试的方案是一个针对dnx451的控制台应用.我有一个非常简单的示例应用程序:

using Google.Protobuf.WellKnownTypes;
using System;

public class Program
{
    public static void Main(string[] args)
    {
        Duration duration = new Duration { Seconds = 100, Nanos = 5555 };
        Console.WriteLine(duration);
    }
}
Run Code Online (Sandbox Code Playgroud)

......还有一点点project.json:

{
  "compilationOptions": { "emitEntryPoint": true },
  "dependencies": { "Google.Protobuf": "3.0.0-alpha4" },

  "frameworks": {
    "dnx451": { }
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,我还没有使用dnxcore*在这里-讽刺的是,我在没有问题的工作.

dnu restore工作良好; dnx run失败了:

错误:c:\ …

.net nuget nuspec dnx

53
推荐指数
3
解决办法
5257
查看次数

如何解决“无法找到包”nuget 错误

致力于为依赖于作为项目参考添加的另一个项目 (B.csprojec) 的项目 (A.csproj) 创建 nuget pkg。
这是 .nuspec ,

<?xml version="1.0"?>
<package >
  <metadata>
    <id>A.Client</id>
    <title>A.Client</title>
    <description>HttpClient and Models for calling the A Microservice.</description>
    <version>1.0.2</version>
    <authors></authors>
    <owners></owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <copyright>.</copyright>
    <tags></tags>
    <dependencies>
      <group targetFramework=".NETFramework4.5">
        <dependency id="Newtonsoft.Json" version="9.0.1" exclude="Build,Analyzers" />
        // <dependency id="B" version="1.0.0"/> tried this but same error
      </group>
      <group targetFramework=".NETStandard2.0">
        <dependency id="Newtonsoft.Json" version="9.0.1" exclude="Build,Analyzers" />
        // <dependency id="B" version="1.0.0"/> tried this but same error
      </group>
    </dependencies>
    <frameworkAssemblies>
      <frameworkAssembly assemblyName="System.Net.Http" targetFramework=".NETFramework4.5" />
    </frameworkAssemblies>
  </metadata>
  <files>
    <file src="bin\$configuration$\netstandard2.0\A.dll" target="lib\netstandard2.0" />
    <file …
Run Code Online (Sandbox Code Playgroud)

nuget nuspec

30
推荐指数
6
解决办法
8万
查看次数

nuget spec依赖,获取最新版本?

在我看到的nuspec版本控制文档中

1.0  = 1.0 ? x
(,1.0]  = x ? 1.0
(,1.0)  = x < 1.0
[1.0] = x == 1.0
(1.0) = invalid
(1.0,) = 1.0 < x
(1.0,2.0) = 1.0 < x < 2.0
[1.0,2.0] = 1.0 ? x ? 2.0
empty = latest version.
Run Code Online (Sandbox Code Playgroud)

我有一个packages.config看起来像这样的

<packages>
  <package id="psake" version="4.2.0.1" />
</packages>
Run Code Online (Sandbox Code Playgroud)

我想将版本更改为"最新".

我试过了两个

<packages>
  <package id="psake" version="" />
</packages>
Run Code Online (Sandbox Code Playgroud)

<packages>
  <package id="psake" />
</packages>
Run Code Online (Sandbox Code Playgroud)

但两者都导致了 Unable to parse version value '' from 'packages.config'. …

versioning specifications nuget nuspec

28
推荐指数
2
解决办法
2万
查看次数

如何在NuSpec文件中递归包含目录

我的项目中有这样的文件夹结构......

Project/Folder1/Folder2
-File1
-File2
-File3

Project/Folder1/Folder3
-File4
-File5
-File6

Project/Folder1/Folder4
-File7
-File8

在NuSpec定义文件中,如何告诉它包含Folder1(文件夹和文件递归)下的所有内容?

我可以这样做,还是需要双**或什么?

<file src="Project\Folder1\*.*" target="Project/Folder1" />
Run Code Online (Sandbox Code Playgroud)

recursion build nuget nuspec

20
推荐指数
1
解决办法
1万
查看次数

NuGet框架程序集无法正常工作

我正在尝试更新nuget包以添加一些程序集引用,但是我收到以下错误:

元素命名空间"元数据" http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd "在命名空间无效子元素"frameworkAssemblies" http://schemas.microsoft.com/packaging/2010 /07/nuspec.xsd '.期望的可能元素列表:命名空间' http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd '中的'依赖关系,语言,摘要'

我相信这个功能是在NuGet 1.2中添加的 - 我使用的是1.2.2213.45.

这是我的nuspec文件:

<?xml version="1.0"?>
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
        <id>PetaPoco.Core</id>
        <title>PetaPoco.Core - A tiny ORMish thing for your POCOs (Core Only)</title>
        <version>3.0.0</version>
        <authors>Topten Software</authors>
        <owners>Topten Software</owners>
        <licenseUrl>http://www.toptensoftware.com/petapoco/license</licenseUrl>
        <projectUrl>http://www.toptensoftware.com/petapoco/</projectUrl>
        <iconUrl>http://www.toptensoftware.com/petapoco/nuget_icon.png</iconUrl>
        <requireLicenseAcceptance>true</requireLicenseAcceptance>
        <description>
PetaPoco is a tiny, single file .NET data access layer inspired by Massive that works with both non-dynamic POCO objects and dynamics.

This package includes the just the core PetaPoco library (ie: no T4 templates)

        </description>
        <tags>ORM …
Run Code Online (Sandbox Code Playgroud)

.net nuget nuspec

18
推荐指数
1
解决办法
9622
查看次数

如何在NuGet中基于目标框架指定条件依赖项?

我正在构建一个引用Microsoft CommonServiceLocator程序集的NuGet包.

那里有两个版本的Microsoft CommonServiceLocator:

我的项目是一个可移植类库,但由于它有时与Enterprise Library一起使用,我需要对"可移植版本"进行"有条件"引用,这样就没有冲突了.

  • 如果目标框架是完整的.NET 4.0/4.5,请使用原始的CommonServiceLocator包,以便人们也可以使用Enterprise Library位(也引用CommonServiceLocator包).
  • 如果目标框架是可移植的(或其他任何东西),请使用Portable.CommonServiceLocator包.

我在NuGet文档中看到了新的"组"功能,显示了如何在.nuspec文件中指定依赖项,我认为这将完成我想要的,但我不确定如何测试它.

这是我认为我需要做的事情,我希望有人可以验证我的方法或指出我正确的方向:

<dependencies>
  <group>
    <!-- Always include regardless of target framework -->
    <dependency id="Autofac" />
  </group>
  <group targetFramework="net40">
    <!-- Also include the full CSL if it's full framework -->
    <dependency id="CommonServiceLocator" />
  </group>
  <group targetFramework="portable-win+sl50+wp8">
    <!-- Otherwise include the Portable CSL -->
    <dependency id="Portable.CommonServiceLocator" />
  </group>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

特别...

  • 我的targetFramework语法合适吗?我找不到任何示例,所以我不知道+分隔机制是否正确或是否应该以逗号分隔.
  • 默认组是否有效?具有未指定目标框架的那个组 - 将始终包含在内还是我需要在每个组中复制/粘贴它?

nuget nuspec

13
推荐指数
1
解决办法
5775
查看次数

显示nuget包发布说明

nuspec参考说,有关阅读发布标签

v1.5每个软件包版本中所做更改的说明.此字段仅在选择" 更新"选项卡时显示,并且包是对先前安装的包的更新.它显示在通常显示描述的位置.

我创建了两个nuspec文件,两个都包含(version当然有不同的标签)

<?xml version="1.0"?>
<package >
  <metadata>
    <id>TestReleaseNotes</id>
    <version>1.0</version>
    <authors>adrianm</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Description</description>
    <releaseNotes>Release notes</releaseNotes>
  </metadata>
  <files>
    <file src="Test.cs" target="content" />
  </files>
</package>
Run Code Online (Sandbox Code Playgroud)

我在VS2013中安装了1.0并选择了更新选项卡但我看不到发行说明. Nuget更新

我错过了什么?

nuget nuspec visual-studio-2013

13
推荐指数
3
解决办法
4132
查看次数

来自可移植类库的Nuget:值不能为null或空字符串.参数名称:profileValue

是)我有的

我有MyProj.Backend.Contracts.csproj以下可移植类库

project.json:

{
  "supports": {
    "net46.app": {},
    "uwp.10.0.app": {},
    "dnxcore50.app": {}
  },
  "dependencies": {
    "Microsoft.NETCore": "5.0.0",
    "Microsoft.NETCore.Portable.Compatibility": "1.0.0",
    "NuSpec.ReferenceGenerator": "1.4.2"
  },
  "frameworks": {
    "dotnet": {
      "imports": "portable-net452+win81"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

和nuspec:

<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>MyProj.Backend.Contracts</id>
    <version>1.0.0</version>
    <dependencies>
      <group targetFramework="dotnet">
        <dependency id="System.Resources.ResourceManager" version="4.0.0" />
        <dependency id="System.Runtime" version="4.0.20" />
      </group>
  </metadata>
</package>
Run Code Online (Sandbox Code Playgroud)

请注意,我已将NuSpec.ReferenceGenerator添加到我的项目中,将''添加到我的项目json中.

但是,我仍然无法打包我的PCL库:

 nuget pack MyProj.Backend.Contracts.csproj
Run Code Online (Sandbox Code Playgroud)

  Attempting to build package from 'MyProj.Backend.Contracts.csproj'.
  Packing files from 'C:\Projects\MyProj\Backend\Contracts\Dev\bin\Contracts'.
  Using ''MyProj.Backend.Contracts.csproj.nuspec' for metadata.
  Value cannot be null or an empty string. …
Run Code Online (Sandbox Code Playgroud)

nuget nuspec portable-class-library .net-4.6

13
推荐指数
1
解决办法
2085
查看次数

是否在某处记录了nuspec文件中格式化描述的约定?

我环顾四周,找不到在nuspec文件中格式化描述字段的约定的位置.我可以看到你至少可以添加段落,但我不知道它是如何完成的,并且想知道是否还有其他事情可以做.

nuget nuspec

10
推荐指数
1
解决办法
1333
查看次数