运行命令时
Get-Package -Remote StructureMap-MVC3
Run Code Online (Sandbox Code Playgroud)
在NuGet的程序包管理器控制台中,它返回以下内容以及截断的程序包的说明.
Id Version Description
-- ------- -----------
StructureMap-MVC3 1.0.1 Adds the latest version of structuremap and configures it as the default Depende...
StructureMap-MVC3 1.0.2 Adds the latest version of structuremap and configures it as the default Depende...
Run Code Online (Sandbox Code Playgroud)
有没有办法从控制台查询包的完整描述?
根据这个页面:
没有用于添加包的集中审批流程.当您将包上传到NuGet包图库(尚不存在)时,您不必等待数天或数周等待某人审阅并批准它.相反,当涉及饲料时,我们将依靠社区来调节和警察自己.这符合CodePlex.com和RubyGems.org的工作原理.
这让我感到不安.在我下载Firefox附加组件之前,我知道它不应该包含恶意代码,因为Mozilla会审查addons.mozilla.org上的AFAIK所有附加组件.在我从codeplex.com或code.google.com下载开源项目之前,我知道它应该是安全的,因为任何人都可以查看它的源代码.我还可以使用WOT(信任网)来检查其他人对该项目的看法.
但在我从NuGet官方包源下载包之前.就拿这一次的例子.我不知道是谁制作了这个包装,也不知道包装中包含的是什么.在我看来,任何人都可以打包任何东西,给它任何他们想要的名字(如"微软棱镜",只要不采取名称),然后将其上传到官方包源.
我是否应该担心NuGet官方软件包源代码的安全性?
有没有办法找到在程序包管理器控制台中编写的命令,比如历史记录,用于我的特定项目?
如果将NuGet 作为NuGet发布到官方存储库并且它显示在https://www.nuget.org/packages/y页面上,NuGet可能会Install-Package失败.Unable to find version 'x' of package 'y'
以下是nuget.org内容和NuGet Install-Package命令输出的具体示例.


UPDATE.包源设置为默认值(来自nuget.org).实际上你可以看到问题刚刚开始Install-Package Log4Net.Async -Version 1.3.0.

更新2.我想强调它不是关于某些开发人员的机器 - 在Visual Studio Online Hosted Build Controller上发生了同样的事情.
更新3.以下是NuGet尝试加载包的方式,看起来NuGet API刚好坏了,因为所有这些请求都失败了,下面的错误.

未找到"套餐"细分的资源
另外NuGet在VS搜索包阶段发出NuGet API调用的奇怪输出,请参见此处:http://pastebin.com/qveadrZB.
如何以现代通用方式打包.NET库以便通过NuGet进行发布?假设我有一个AnyCPU程序集,我希望在.NET Framework 4.6平台上提供.
这是一系列问题和答案,记录了我对现代NuGet包创作主题的研究结果,特别关注NuGet 3引入的变化.您可能还对一些相关问题感兴趣:
我在Visual Studio 2013中更新Nuget包以获得解决方案时遇到问题.
我右键单击解决方案,选择"管理解决方案包",然后在更新选项卡中选择"全部更新".
这一切似乎都很好,但是,在更新选项卡中,更新的软件包仍然显示为需要更新.如果我再次更新它们,项目列表会显示每个包含该程序包的项目,并且每个复选框都被禁用,就像它已经知道它们已经更新一样.据我所知,每个项目都已更新.
我重新启动了Visual Studio
之前有人遇到过这个吗?
我创建了一个 NuGet 包,并且能够在另一个 .NET 解决方案中成功安装它。但我无法从其他 .NET 解决方案中添加对 NuGet 包的引用。
例如,NuGet 包有一个类,其命名空间类似于MyCorp.SecurityApi. 我目前无法在其他 .NET 解决方案中为该命名空间添加 using 指令。例如,using MyCorp.SecurityApi指令返回此编译错误:
找不到类型或命名空间“MyCorp”
知道问题可能是什么或如何调试吗?
所以我真的很想弄明白这一点.
我有一个项目的解决方案,比如A,B和C.参考并使用B和C(两个项目参考).我想从A创建一个Nuget包,我成功了,虽然我不得不跳几个圈,使用这样的东西:
<ProjectReference Include="..." PrivateAssets="All" />
...
<Target Name="CopyProjectReferencesToPackage" DependsOnTargets="ResolveReferences">
<ItemGroup>
<BuildOutputInPackage Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference')->WithMetadataValue('PrivateAssets', 'All'))" />
</ItemGroup>
</Target>
Run Code Online (Sandbox Code Playgroud)
但是,我想通过我的Nuget包调试,所以我发现了一些技巧.一种是将pdb复制到nupkg中,尽管不建议这样做.它应该适用于你的csproj文件中的这一行.这会将pdb添加到nupkg中,但只会A.pdb添加.
否则,可以/应该创建一个A.symbols.nupkg文件.我想这样做,使用标签,如DebugSymbols,DebugType,EmbedSources,和IncludeSymbolsInPackage,但无济于事.
我也试过了> dotnet pack A.csproj --include-symbols --include-source,它产生了一个A.nupkg和一个A.symbols.nupkg,但在符号内,只有A.pdb而不是B.pdb和C.pdb.
所以我想我的问题是:如何从可以调试的多项目解决方案中创建一个nuget包(所以包括pdb或符号/来源,不是一个,而是来自所有引用的项目)?
TLDR:我已经看到了很多潜在的解决方案,但到目前为止,还没有成功.
我的一些最后一个度假村可能是:只是将B和C的所有内容添加到A,这样只剩下一个项目,或者创建一个PowerShell脚本来手动添加所有pdb A.symbols.nupkg.当然,如果有的话,我想要一个更直接的解决方案.
我正在开发一个 Nuget 包。我已经icon.png放在里面Images的文件夹我的包里面的代码。在我的.csproj文件中,我添加了与图标相关的必需标签。但仍然没有显示图标。Nuget 中显示的是默认的蓝色图标。
这是我的.csproj文件,
<PropertyGroup>
<PackageIcon>icon.png</PackageIcon>
</PropertyGroup>
<ItemGroup>
<None Include="Images\icon.png" Pack="true" PackagePath=""/>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?请协助。
我想发布 NuGet 包的新版本,但我希望它自动处于未列出状态。当我手动将.nupkg文件上传到nuget.org 时,在预览中有一个选项可以从搜索结果中取消列出包:
有没有办法用nuget.exeor做到这一点dotnet nuget?
我能够使用PUSH + DELETE命令来实现这一点,但我不确定这是否与上述手动操作相同。
例如,关注点之一是包的 RSS ( atom.xml)会发生什么?
它是否首先获得一个新条目,然后稍后将其删除?在这种情况下,是否仍有人会收到有关此版本的通知?
最后,我知道私有 NuGet 提要,但无论如何,为了方便起见,我仍然想只使用主要的 NuGet。