问题标签 [nuget-spec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
138 浏览

nuget - 使用 nuget 合并代码文件而不是覆盖

我已经构建了几个可以单独使用或一起使用的 nuget 包。每个都有一个名为 Config.cs.pp 的特定文件,当您添加包时,它当然会变成 Config.cs。问题是,如果我使用多个包,而不是合并文件,系统会提示我使用添加的每个包忽略或覆盖 Config.cs。我想知道是否有人知道强制 nuget 合并的方法(或者可能两者都保留 ~1)?

我猜这只是nuget的一个限制。但我想我会在这里问。

0 投票
1 回答
197 浏览

visual-studio - 如何强制 NuGet 依赖项位于目标目录中?

我正在尝试在 NuGet登台服务器上发布一个项目。该项目有两个依赖项:Mono.Cecil 和 ILRepack。

在项目级别安装我的项目时:

  • Mono.Cecil 依赖项在项目级别自动安装。我也可以在项目的目标目录中找到它。

  • ILRepack 依赖项也已安装,但在解决方案级别。目标目录中没有提及ILRepack.dll

由于我的项目要求 Mono.Cecil 和 ILRepack 实际上都在目标目录中,这很烦人。没有“复制本地”来检查普通引用。

如何强制 NuGet 依赖项位于项目范围内并在构建期间复制到目标目录?

0 投票
2 回答
342 浏览

nuget - Nuget Push(更新到包) - 在包管理器中显示为新安装

我有一个非常简单的后期构建脚本,它将我项目中的所有 dll 打包到自定义 nuget 服务器。这很好用,但是,当从任何解决方案打开包管理器时,我将 nuget 包视为新安装,而不是预期的“更新”选项。

我正在使用的 nuspec 文件是:

版本号随着每次构建而递增。

命令本质上是

nuget 包 Objects.ForConsumers.nuspec

nuget push Objects.ForConsumers.1.2015.1111.12.nupkg -s http://nuget.myserver.com myApiKey

谁能建议这是发生了什么?

在此处输入图像描述

0 投票
2 回答
1258 浏览

nuget - 在 nuspec 依赖项中指定源

我有一个本地NuGet提要。此提要包含一个依赖项,该依赖项位于 nuget.org。

这是在我的 nuspec 文件中:

如何指定 NuGet 必须在 nuget.org 中查找此依赖项?我目前收到:

安装包:无法解析依赖“log4net (= 1.2.10)”。

当我通过 Visual Studio 中的包管理器控制台执行安装包时。

0 投票
1 回答
376 浏览

nuget - .nu​​get 包含来自其他项目的文件

我有三个带有 .sql 文件的 Visual Studio 数据库项目。不需要将项目发布到数据库,而是需要在特定时刻执行 SQL。

我添加了另一个项目以将所有内容打包到一个 nuget 包中(包括一些通用脚本)。所以 .nuspec 文件应该指定需要包含的 SQL 文件。

我们使用 TeamCity 来构建我们的项目,并使用 Octopus Deploy 来打包 nuget 包。当 TeamCity 尝试构建包 OctoPack 时说找不到文件:

错误 OCTONUGET:找不到文件:'..\otherproject\code.sql'。

我已经检查过,该文件存在于请求位置的构建服务器上。

如何访问父文件夹?还是有另一种方法来包含来自其他项目的文件?

0 投票
0 回答
225 浏览

c# - 如何使我的 nuget 包与 .net 4.5 兼容?

我正在尝试创建一个私有 nuget 包,以允许我们的组织跨多个应用程序共享 MVC 模型。这是我的第一次,我受到克里斯对这个问题的回答的启发。

我以为我已经搞定了……它构建得很好,并显示在我的本地 nuget 提要中,并带有所有正确的元数据。

但是当我尝试在其中一个应用程序中安装软件包时,我收到了这个错误:

You are trying to install this package into a project that targets '.NETFramework,Version=v4.5', but the package does not contain any assembly references or content files that are compatible with that framework.

我认为依赖与 4.5 兼容。我的 4.5 项目(目标应用程序)引用了相同版本的依赖项。

我发现了一个异常,可能(不)相关:在 project.json 文件中,我有 aspnet45 作为框架。但在解决方案资源管理器中,引用显示了对 ASP.NET 5.0 的引用。


项目.json


解决方案资源管理器 > 参考

在此处输入图像描述


问题

  1. 最重要的是,我该如何解决这个问题并让它工作?
  2. 为什么我aspnet45在项目 json 中使用,并且解决方案资源管理器中的引用部分显示ASP.NET 5.0
  3. 应该dependencies在 'project.json' 文件的,frameworksframeworkAssemblies部分放什么?在代码中,我需要的唯一 using 指令是:

    using System;

    using System.Collections.Generic;

    using System.ComponentModel.DataAnnotations;

对于更有能力的开发人员来说,Q3 可能是不言自明的。但我只是刚刚掌握了这一点,所以任何伴随的解释/细节都会受到欢迎。

0 投票
0 回答
68 浏览

c# - 为什么 vs2015 默认 nuget 包包含 beta 依赖?我应该在我的项目中安装它们吗?

当我创建一个用于 nuget 的新类库时,默认情况下它具有以下依赖项/框架:


问题 1

project.json 的依赖项部分实际上是否-beta-意味着它们是 beta 版本?!

如果是这样,为什么要创建对 beta 版本的依赖关系?


问题2

当我安装这个 nuget 包时,它会尝试将这些依赖项与包一起安装。

在此处输入图像描述

但是在目标应用程序中,我是否还没有对System.Linq、等的引用System.Collections

(我想知道这是否是因为 nuget 包引用了-beta-版本,而不是4.0.0.0目标项目中引用的版本。但是这种行为仍在继续,更改4.0.10-beta-23019为后的事件4.0.0.0

0 投票
1 回答
227 浏览

c# - 我应该如何在 nuget 包中包含与 MVC 相关的命名空间?

我想创建一个 nuget 包来将 MVC-ish 的库导入到 MVC 项目中。例如:

  • 楷模
  • 枚举
  • 属性

但我对如何包含他们的命名空间感到困惑。

创建新的类库后,我尝试使用 namespace System.ComponentModels.DataAnnotations,但无法识别。

我尝试使用References解决方案资源管理器中的部分。但那里似乎没有选择 - 只有消息:

No recent framework assemblies were found on your machine or in your project.json.

在此处输入图像描述

好的,所以我去project.json文件。

但我不确定我应该如何在这里添加这些引用。

如果我添加"System.ComponentModel.DataAnotations": "4.0.0.0"到该dependencies部分,我会收到 build error Dependency could not be resolved

因此,我认为我应该更改该frameworks部分中的某些内容。

但我不确定要添加什么,尤其是因为有很多选项(例如“dotnet”、“net40”、“net50”、“dnx”等)!

我的理解是,该frameworks部分使单个 nuget 包能够针对不同的框架版本。但实际上,我想要的只是一个通用的 MVC 包。我不想将包不必要地限制为特定版本的框架。

0 投票
1 回答
571 浏览

nuget - Nuget 包 csproj 依赖于其他 csproj

我有两个项目

  1. csproj
  2. B.csproj

其中 B 引用 A(引用解决方案中的项目)

我想自动创建包,其中包 B 将包含对包 A 的依赖

我已经使用 nuspec 生成nuget spec A.csproj并使用nuget pack A.csproj. 项目 B 也是如此。

但是 B.nuspec 不包含对 nuget 包 A 的依赖?

我想在 TFS 构建服务器上自动创建 nuget 包,其中程序集版本是在构建时确定的。

在包 B 中,如何将依赖项添加到具有正确版本的包 A?

0 投票
1 回答
1085 浏览

powershell - Update-Module 复制模块而不是更新

我正在使用PowerShellGet从我的本地 Nuget 源安装我自己的 PowerShell 模块(按此处打包和发布)。

我像这样安装一次:

然后我像这样更新它:

它按预期工作,但在每次版本更新后,我都会得到模块的副本而不是覆盖:

在最新版本中删除的函数仍然可用,并且 PowerShell ISE 自动完成显示每个函数的重复项:

powershell_ise 中的示例


更新

@CmdrTchort 提出了额外的调查检查,这里是结果。

检查模块的安装位置

正如预期的那样,PowerShellGet 将它们安装到%USERPROFILE%\Documents\WindowsPowerShell\Modules

我看到它$PSScriptRoot包含那条路径。

检查更新模块将做什么

检查,实际导入的是哪个版本:

  1. 启动新powershell控制台
  2. 运行Get-Module以确保 MyModule 根本没有导入
  3. 从 MyModule 运行任何 cmdlet
  4. Get-Module检查,通过再次执行只导入了一个最新版本的 MyModule

对我来说是:

结论

看来,这里没有问题,正如@CmdrTchort 所写,预计会Get-Module -ListAvailable显示安装的所有版本。

我认为 PowerShell 自动完成在 powershell 和 powershell_ise 中的行为有点令人困惑,因为如果可用的版本很少并且从最新版本中删除了功能,它会显示相同功能的重复,可能会很快改变或以某种方式配置。