我想创建一个Nuget软件包,将几个文件添加到某个解决方案文件夹中.具体来说,包装必须在安装时执行以下操作: 在目标项目中创建一个临时文件夹. 将匹配扩展名(例如 *.txt)的所有文件复制到临时文件夹. 将文件移至解决方案根. 创建一个名为"解决方案项目"的解决方案文件夹. 将所有移动的文件添加到该解决方案文件夹. 从 解决方案和磁盘上删除温度文件夹. 我使用package.nuspec文件来创建一个临时目录并转储文件,然后init.ps1进行其余的工作. 不幸的是,除了步骤1之外,什么都没有发生. 这是我的package.nuspec文件. IncludeFiles 1.0
以下是关于 nuget 的编程技术问答
这些软件包似乎具有相似的功能.有什么区别? 解决方案 ibmmqdotnetclient 是" .NET标准的IBM MQ类",也称为base .NET类. 其中 ibmxmsdotnetclient :称为XMS,具有与JAVA™消息服务(JMS)API.Renders类似JMS的API相同的接口集,并实现JMS 1.1规范. ibmmqdotnetclient中可用的大多数功能也可以在XMS中提供,除了这些功能之外,还有其他功能,例如"异步消息消费者",消息选择器,毒药消息处理等. . . 基本上的区别是,如果您要使用类似JMS的API并寻找异步消息消费者或消息选择器之类的功能,则可以使用XMS.
我的项目需要包装为ZIP文件进行部署.我想在邮政构建步骤中创建此zip文件. 为了实现此目的,我已经通过Nuget安装了一个7 ZIP命令行.该软件包提供了一个可执行的可执行文件,我想在我的帖子构建步骤中调用.我知道我可以通过提供已安装软件包的路径来调用它,但是此路径包含该软件包的版本编号,因此在更新软件包时,直接引用将断开. 是否可以使用一些MSBUILD变量来获取我已安装的软件包工具路径的路径? 解决方案 我认为没有办法避免包装路径中的版本编号,但是您可以执行类似Slowcheetah Nuget软件包所做的事情,以使其在开发人员机器之间更加便携./p> $([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\..\packages\SlowCheetah.2.5.12\tools\
我已经阅读了这本书,我认为将其用于我们的依赖项将比当前的方法更好.此外,您可以构建应用程序部署软件包,以将构建部署到各种环境中,我们也希望更好地自动化. 一个想法是有几个nuget feed. CI提要中,每个成功集成都发布一个包,您只发布您希望QA测试的QA feed,然后是发行供稿,您仅从质量检查feed中复制了它们成功测试的包装. . 我喜欢这个想法,但是建议通过在-alphaxxxx或类似的情况下结束版本来将CI构建标记为预发行.但是,如果我这样做,我需要在促销质量保证供稿期间取消该指定.我认为您必须修改软件包才能做到这一点,但是Nuget软件包的吸引力的一部分是,一旦构建,您就不会更改它们 另一个想法是,由于我们主要在中继线工作,因此当我制作RC分支时,我们的构建过程将停止添加版本的预发行部分.这似乎会起作用,然后从质量检查到发布feed将是一个简单的包装副本. 有人正在采用这种方法吗?这是推荐的方法吗?我错过了什么吗?我已经搜索了谷歌,但NIT就这种
or:如何自动化nuspec/nupkgs创建? TL; dr; 我们的项目团队需要管理许多不存在Nuget包装的第三方利润率,以及(当然)许多基于Nuget的依赖性.我们想以最一致的方式来管理这些依赖性,但是手工制作的nuspecs theck糟透了.我们如何自动化第三方依赖性的Nuget包装的创建? 背景 我们公司的项目团队在我们的许多项目中都使用某些第三方库,而没有公开可用的Nuget包装,例如Devexpress Devextreme Controls库,或类似. . 我们通常会为这些项目设置连续集成(CI)/- 部署(CD)管道,因为我们的Build-Agent("共同列入的"团队基础服务器(TFS)ATM)通常缺乏所需的组件/组件,以便成功地构建这些项目.在设置新的Build-Agent(例如,在迁移到较新的TFS版本)或设置新项目时,这通常会使LEED构建失败.这进一步导致了组件套件的潮流安装,大多数情况下,即使有许多不同版本的库和"参考文献",
microsoft.win32.Registry 软件包的最新版本是 6.0.0-preview.5.21301.5 于2021年6月15日发布,也没有.NET 7.0预览版.但是,Microsoft Doc解释说,类 Microsoft.win32.Registry 可用于.NET 6.0和.NET 7.0预览 microsoft.win32.Registry.dll . 软件包 system.security.principal.windowsprincipal 可用于.NET 6.0和.NET 7.0 Preview in Assembly system.security.security.principal.principal.windows.dll.dll ...... P> 另一方面,软件包 microsoft.win32.Registry 和 system.security.principal.windows.windows packages? 解决方案 对于M
i" m使用sqlite编写c#应用程序,我需要sqlite参考.使用nuget我找到包装,输出窗口显示成功的安装. 查看解决方案资源管理器中的包裹配置文件,它显示了已安装的版本. 但是,在解决方案Explorer sqlite中的项目参考下不存在. 我已经在线观看了教程,在其他机器上完成了相同的过程,一切都可以,Nuget完成安装后弹出的所有参考文献. 我正在使用VS2019,据我了解,Nuget的运作方式发生了一些变化,但是我有VS2015和VS2017社区,并且遇到了同样的问题.我真的处于一个站立点,因为我不知道如何获得参考来显示,以便我可以在程序中访问它. sqlite没有组装参考,因此添加
当我使用Dotnet Pack创建Nuget软件包时,它会为项目参考创建软件包依赖项. 它似乎总是以"大于或等于当前项目版本"的约束来创建这些 有什么方法可以控制Dotnet Pack产生的版本约束? 我正在使用VS2017和CSPROJ文件进行NetStandard1.6; Net461项目. 解决方案 使用范围语法[1.0.1,2) https://learn.microsoft.com/en-us/nuget/consume-packages/package-references-references-in-project-in-project-files 但尚未支持项目重新(我能找到的). 您可以将您的项目分开,以便它们分开构建并使用PackageReference,但是如果您有许多已将所有项目链在一起的项目,那并不是一个很好的方法.
我尝试将Nuget软件包发布到我的GitHub软件包帐户,但在所有情况下,我都有404错误. 我在GitHub的网站上按要求遵循: nuget source Add -Name "GitHub" -Source "https://nuget.pkg.github.com/[MyAccount]/index.json" -UserName [MyUserName] -Password GH_TOKEN 这给我带来了一个错误,说添加一个API键. 所以我创建了一个个人访问令牌并设置API密钥: nuget setapikey [MY_PAT_TOKEN] -Source "https://nuget.pkg.github.com/[MyAccount]/index.json" 但是,当试图再次推动时,我有: " GitHub软件包无法验证您的请求 服务.请确保您的访问令牌有效,并且具有 配置了适当的范围." 所以我创建了另一个具有必要范围的令牌: - 阅
拉出一些代码更新后,我发现我在构建时收到了此消息. Some NuGet packages are missing from the solution. The packages need to be restored in order to build the dependency graph. Restore the packages before performing any operations 在解决方案资源管理器中显示的参考链接显示了缺少参考图标 我删除了引用,然后在软件包管理器控制台上出现一个按钮,询问我是否要安装缺失的软件包.但是,这无效. 解决方案 当我尝试自行打开该项目时,在解决方案外部进行构建时,我收到了消息. 需要恢复一个或多个Nuget软件包,但不能因为尚未批准同意.要获得同意,请打开Visual Studio选项对话框,单击"软件包管理器"节点,然后检查"允许Nuget在构建过程中下载丢失的软件包".您也可以通过设置环境变量"
也许我在这里做错事或在这里表达纯粹的无知,但是我真的看不到Nuget软件包是如何有益的?我最近决定安装许多Nuget软件包,以替换我的应用程序中的静态DLL.当我检查包装创建的文件夹时,它们似乎包含了许多不同版本的DLL,all asun and ass in sub Directories下方. 并不是所有这些文件,其中许多文件似乎冗余增加了应用程序的整体规模并减慢发布和部署例程吗?另外应该将哪些项目放在源控制中? 就像我说的那样,我可能在这里缺少一些东西,但是有人能以nuget套餐的优点启发我吗?我开始认为bin文件夹中的一个简单的dll效果很好? 解决方案 每个软件包都知道其他包装 - 特别是其哪些版本 - 取决于.这有助于确保所有库兼容. 您仍然只应该部署您实际需要的DLL版本 您可以决定不将任何任何 dll放入您的源控件中,因为Nuget具有"封装还原"功能,该功能会自动在构建上加载丢失的包装. 您都有所有依赖关系的中心位置:只需单击项目的右键,然后选
asp.net 4.5.1或4.5.2 更新Nuget软件包MicrosoftaspNet.Identity.EntityFramework从版本2.2.1到版本3.0.0.0.0-rc1-final 我有以下错误: 无法添加参考.软件包的" Microsoft.aspnet.Identity.entityFramework"试图将框架引用添加到GAC中未找到的" System.Runtime"的框架引用.这可能是软件包中的错误.请联系包裹 业主寻求帮助. 解决方案 我与另一个软件包有类似的问题. i"解决",它添加了一个手动引用到丢失的库,更新软件包,然后手动添加参考文献: 在您的项目上,请转到参考> 添加参考... ,然后单击浏览... 在我的安装(Windows 10)上,您的文件位于: c:\ Windows \ Windows \ Microsoft.net \ Assembly \ gac_msil \ gac_msil \ sys
是否可以告诉Nuget您想使用具有特定主要版本的最新版本 ,并且从不超过此主要版本? 例如,让我们以jQuery为例:如果我们需要旧浏览器的支持,则不能使用2.x版本.我们仅限于使用最新的1.x版本. 我们知道,jQuery的当前可用(默认为管理Nuget软件包对话框)为2.1.1.我们不使用此版本,而是需要使用jQuery 1.x分支的当前最新主要版本,目前为1.11.1. 我知道如何最初安装1.11.1版本.一个简单的解决方案是手动编辑packages.config文件,用1.11.1> 1.11.1替换version属性的值: 并构建项目. 我不知道的是如何告诉Nuget跟踪发布1.x分支的新版本,以便我以与发布新2.x版本相同的方式向他们提供更新: 默认情况下,
尝试在Nuget控制台上更新包装时会出现以下错误: At line:1 char:1 + Update-Package Microsoft.AspNet.WebApi -reinstall + CategoryInfo : InvalidOperation: (:) [Update-Package], InvalidOperationException + FullyQualifiedErrorId : NuGetMissingPackages, NuGet.PackageManagement.PowerShellCmdlets.UpdatePackageCommand 当我尝试安装NuGet.PackageManagement.PowerShellCmdlets时,我会得到错误: An error occured while trying to restore packages:Unable to find version '5.2.3'
nuget将软件包放入我的根文件夹中(在我的情况下是中继文件夹).我想知道有没有办法让VS 2010了解此文件夹?我正在使用ANKH SVN进行通勤,所以将其放入解决方案中真的很高兴,因此当我添加参考时,我可以从VS 2010中提交它,而不必去我的后备箱并手动执行. 可以做到吗? 解决方案 当前执行此操作的最简单方法是使用工作复制Explorer(view->工作复制Explorer).您可以从这里浏览解决方案文件夹,并添加引用. 我添加了将其增强的想法,将其增强到 ankhsvn反馈论坛,请去投票: - ) 其他解决方案 您可能有兴趣阅读此Nuget Doc: 使用nuget而不承担源代码来源源 其他解决方案 您应该考虑"不要提交软件包工作流".这是更成熟的解决方案: http://blog.davidebbo.com/2011/08/easy-way-to-noget-nuget-to-restore.html