问题标签 [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.
nuget - 使用 nuget 合并代码文件而不是覆盖
我已经构建了几个可以单独使用或一起使用的 nuget 包。每个都有一个名为 Config.cs.pp 的特定文件,当您添加包时,它当然会变成 Config.cs。问题是,如果我使用多个包,而不是合并文件,系统会提示我使用添加的每个包忽略或覆盖 Config.cs。我想知道是否有人知道强制 nuget 合并的方法(或者可能两者都保留 ~1)?
我猜这只是nuget的一个限制。但我想我会在这里问。
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
谁能建议这是发生了什么?
nuget - 在 nuspec 依赖项中指定源
我有一个本地NuGet提要。此提要包含一个依赖项,该依赖项位于 nuget.org。
这是在我的 nuspec 文件中:
如何指定 NuGet 必须在 nuget.org 中查找此依赖项?我目前收到:
安装包:无法解析依赖“log4net (= 1.2.10)”。
当我通过 Visual Studio 中的包管理器控制台执行安装包时。
nuget - .nuget 包含来自其他项目的文件
我有三个带有 .sql 文件的 Visual Studio 数据库项目。不需要将项目发布到数据库,而是需要在特定时刻执行 SQL。
我添加了另一个项目以将所有内容打包到一个 nuget 包中(包括一些通用脚本)。所以 .nuspec 文件应该指定需要包含的 SQL 文件。
我们使用 TeamCity 来构建我们的项目,并使用 Octopus Deploy 来打包 nuget 包。当 TeamCity 尝试构建包 OctoPack 时说找不到文件:
错误 OCTONUGET:找不到文件:'..\otherproject\code.sql'。
我已经检查过,该文件存在于请求位置的构建服务器上。
如何访问父文件夹?还是有另一种方法来包含来自其他项目的文件?
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
解决方案资源管理器 > 参考
问题
- 最重要的是,我该如何解决这个问题并让它工作?
- 为什么我
aspnet45
在项目 json 中使用,并且解决方案资源管理器中的引用部分显示ASP.NET 5.0
? 我应该
dependencies
在 'project.json' 文件的,frameworks
和frameworkAssemblies
部分放什么?在代码中,我需要的唯一 using 指令是:using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
对于更有能力的开发人员来说,Q3 可能是不言自明的。但我只是刚刚掌握了这一点,所以任何伴随的解释/细节都会受到欢迎。
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
)
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 包。我不想将包不必要地限制为特定版本的框架。
nuget - Nuget 包 csproj 依赖于其他 csproj
我有两个项目
- csproj
- B.csproj
其中 B 引用 A(引用解决方案中的项目)
我想自动创建包,其中包 B 将包含对包 A 的依赖
我已经使用 nuspec 生成nuget spec A.csproj
并使用nuget pack A.csproj
. 项目 B 也是如此。
但是 B.nuspec 不包含对 nuget 包 A 的依赖?
我想在 TFS 构建服务器上自动创建 nuget 包,其中程序集版本是在构建时确定的。
在包 B 中,如何将依赖项添加到具有正确版本的包 A?
powershell - Update-Module 复制模块而不是更新
我正在使用PowerShellGet从我的本地 Nuget 源安装我自己的 PowerShell 模块(按此处打包和发布)。
我像这样安装一次:
然后我像这样更新它:
它按预期工作,但在每次版本更新后,我都会得到模块的副本而不是覆盖:
在最新版本中删除的函数仍然可用,并且 PowerShell ISE 自动完成显示每个函数的重复项:
更新
@CmdrTchort 提出了额外的调查检查,这里是结果。
检查模块的安装位置
正如预期的那样,PowerShellGet 将它们安装到%USERPROFILE%\Documents\WindowsPowerShell\Modules
:
我看到它$PSScriptRoot
包含那条路径。
检查更新模块将做什么
检查,实际导入的是哪个版本:
- 启动新
powershell
控制台 - 运行
Get-Module
以确保 MyModule 根本没有导入 - 从 MyModule 运行任何 cmdlet
Get-Module
检查,通过再次执行只导入了一个最新版本的 MyModule
对我来说是:
结论
看来,这里没有问题,正如@CmdrTchort 所写,预计会Get-Module -ListAvailable
显示安装的所有版本。
我认为 PowerShell 自动完成在 powershell 和 powershell_ise 中的行为有点令人困惑,因为如果可用的版本很少并且从最新版本中删除了功能,它会显示相同功能的重复,可能会很快改变或以某种方式配置。