小编Bob*_*byA的帖子

有没有办法在Visual Studio中查看已安装的NuGet包来自哪个包源?

在Visual Studio的NuGet包管理器中,您可以通过单击包管理器中的"已安装"选项卡来查看解决方案中已安装的NuGet包.

但是,在同一个包在多个NuGet包源中的情况下,查看特定NuGet包来自哪个包源会很有用.有没有办法在NuGet包管理器或VS中的任何其他地方看到这个?

编辑: 在下面的评论中复制以澄清:

我正在创建一个使用预先存在的项目作为模型的项目.两个项目都需要引用相同的Nuget包,因此我在Visual Studio中打开模型项目,打开Nuget包管理器,并查看其已安装的包.模型项目安装了"PackageA".我打开新项目,为它打开Nuget包管理器,然后浏览"PackageA".我注意到"PackageA"在多个Package Sources中可用.(这些是我公司内部的,而不是nuget,org)在我的新项目中,我想从与模型项目相同的Package Source安装"PackageA"

visual-studio nuget nuget-package

9
推荐指数
2
解决办法
3017
查看次数

创建HandleBars助手服务器端的语法是什么?

使用Handlebars.Net,我想创建一个HandlebarsHelper,它将用<br>标签替换回车和换行符.它应该看起来像这样:

string pattern = @"/(\r\n|\n|\r)/gm";
string replacement = "<br>";
Regex rgx = new Regex(pattern);

Handlebars.RegisterHelper("link_to", (string text) =>
{
    text = rgx.Replace(text, replacement);
});
Run Code Online (Sandbox Code Playgroud)

编译器(或resharper)告诉我它无法判断我是否正在尝试使用HandlebarsBlockHelper或HandlebarsHelper,而且我在任何一种情况下都缺少参数.

  1. 这两者有什么区别?
  2. 我似乎无法找到任何这方面的文档.是否有上述两个对象以及HelperOptions的文档,以及如何使用TextWriter,dymanic上下文和参数对象列表?

c# handlebarshelper handlebars.net

5
推荐指数
1
解决办法
1509
查看次数

我可以使用RabbitMQ .NET Client遍历队列吗?

我想要一种方法来遍历Rabbit服务器虚拟主机上的现有队列,并输出队列中的消息数量,而无需将队列名称硬编码为我的C#代码。

这是一个使用RabbitMQ .NET客户端通过对队列值进行硬编码来获取队列中消息数量的示例:

using System;
using RabbitMQ.Client;

namespace RabbitMonitor
{
    class Program
    {
        static void Main(string[] args)
        {
            var factory = new ConnectionFactory()
            {
                HostName = "<HostName>",
                UserName = "<UserName>",
                Password = "<Password>",
                VirtualHost = "<VirtualHost>",
                Port = 5672
            };

            var queueNameMessageCount = 0;

            using (var connection = factory.CreateConnection())
            using (var channel = connection.CreateModel())
            {
                queueNameMessageCount = channel.MessageCount("<QueueName>");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以使用RabbitMQ .NET Client获得给定虚拟主机上的队列/队列名称的集合?

相关:是否可以使用RabbitMQ .NET Client在服务器上获取虚拟主机/虚拟主机名的集合?

c# rabbitmq

5
推荐指数
1
解决办法
1422
查看次数

正则表达式从nuget包文件名解析包名和版本号

我有一个我从nuget.org下载的nuget包目录.我正在尝试创建一个正则表达式来解析文件名中的包名称和版本号.乍一看似乎并不困难; 文件名有一个清晰的模式:

{PACKAGENAME}.{VERSIONNUMBER} .nupkg

边缘情况使其具有挑战性.

  • 包名称可以包含破折号,下划线和数字
  • 包名称可以有效地由点分隔的无限制部分
  • 版本号由3-4组数字组成,分隔点
  • 版本号有时以预发布标签为后缀(-alpha,-beta等)

这是nuget包文件名的示例列表:

knockoutjs.3.4.2.nupkg
log4net.2.0.8.nupkg
runtime.tizen.4.0.0-armel.microsoft.netcore.jit.2.0.0.nupkg
nuget.core.2.7.0-alpha.nupkg
microsoft.identitymodel.6.1.7600.16394.nupkg
Run Code Online (Sandbox Code Playgroud)

我希望能够在严肃文本编辑器中进行搜索/替换,其中搜索是具有两个组的正则表达式,一个用于包名称,一个用于版本号.输出应为"Package:\ 1 Version:\ 2".使用上面的5个包,输出应该是:

Package: knockoutjs Version: 3.4.2
Package: log4net Version: 2.0.8
Package: runtime.tizen.4.0.0-armel.microsoft.netcore.jit Version: 2.0.0
Package: nuget.core Version: 2.7.0-alpha
Package: microsoft.identitymodel Version: 6.1.7600.16394
Run Code Online (Sandbox Code Playgroud)

我提出的最接近相对简洁的正则表达式是:

^([^\s]*)\.((?:[0-9]+\.){3,})nupkg$
Run Code Online (Sandbox Code Playgroud)

...导致以下输出:

Package: knockoutjs Version: 3.4.2.
Package: log4net Version: 2.0.8.
Package: runtime.tizen.4.0.0-armel.microsoft.netcore.jit Version: 2.0.0.
nuget.core.2.7.0-alpha.nupkg
Package: microsoft.identitymodel.6 Version: 1.7600.16394.
Run Code Online (Sandbox Code Playgroud)

虽然我不想要那个尾随点,但是它可以很好地处理前三个.它在第四个上甚至不匹配,第五个版本号的第一部分与包名称混为一致.

保存一天!

regex nuget nuget-package

5
推荐指数
1
解决办法
743
查看次数