我正在使用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) 我正在尝试验证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:\ …
致力于为依赖于作为项目参考添加的另一个项目 (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) 在我看到的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'. …
我的项目中有这样的文件夹结构......
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) 我正在尝试更新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) 我正在构建一个引用Microsoft CommonServiceLocator程序集的NuGet包.
那里有两个版本的Microsoft CommonServiceLocator:
我的项目是一个可移植类库,但由于它有时与Enterprise Library一起使用,我需要对"可移植版本"进行"有条件"引用,这样就没有冲突了.
我在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语法合适吗?我找不到任何示例,所以我不知道+分隔机制是否正确或是否应该以逗号分隔.该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并选择了更新选项卡但我看不到发行说明.

我错过了什么?
我有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) 我环顾四周,找不到在nuspec文件中格式化描述字段的约定的位置.我可以看到你至少可以添加段落,但我不知道它是如何完成的,并且想知道是否还有其他事情可以做.
nuget ×10
nuspec ×10
.net ×2
.net-4.6 ×1
build ×1
dependencies ×1
dnx ×1
package ×1
recursion ×1
versioning ×1