小编The*_*dge的帖子

在TeamCity中更改app.config中的值

在包含所有单元测试的Visual Studio解决方案中,我们有一些文本文件.根据我们的单元测试生成的一些结果检查这些文本文件.

为了加载文件,我们有一个app.config:

 <appSettings>
    <add key="BaseTestDataPath" value="D:\MyPath\MySolution\" />
 </appSettings>
Run Code Online (Sandbox Code Playgroud)

在每次构建运行的TeamCity中,我想:

将BaseTestsDataPath更改为代理的特定工作路径,例如.

C:\TeamCity\buildAgent\work\1ca1a73fe3dadf57\MySolution\
Run Code Online (Sandbox Code Playgroud)

我知道代理工作文件夹中的物理布局,所以我需要知道的是:

  • 如何在针对TeamCity的构建步骤中针对解决方案运行Nunit之前更改app.config文件

teamcity nunit visual-studio nunit-3.0

4
推荐指数
1
解决办法
4722
查看次数

即使模型匹配我也要得到-无法更新数据库以匹配当前模型

  • EF 6.2
  • SQL Server 2012

我得到了例外:

无法更新数据库以匹配当前模型,因为有未决的更改并且自动迁移已禁用...

在这里这里这里完成了研究

我有一个长期有效的解决方案,没有任何问题。实际上,我几天前就对数据库进行了更改,并且使用该标准add-migration后一切都很好,update-database并且没有任何问题。

但是,今天我又对数据库进行了更改,add-migration之后又做了update-database。但是,当我运行该应用程序时,出现上述错误。

我可以通过在Application_Start中包含以下内容来确保运行迁移:

ConfigurationPlatform configurationPlatform = new ConfigurationPlatform();
DbMigrator migratorPlatform = new DbMigrator(configurationPlatform);
migratorPlatform.Update();
Run Code Online (Sandbox Code Playgroud)

配置类如下所示:

public sealed class ConfigurationPlatform : DbMigrationsConfiguration<TreasurePlatformDbContext>
{
    public ConfigurationPlatform()
    {
        AutomaticMigrationsEnabled = false;
        AutomaticMigrationDataLossAllowed = false;
        ContextKey = "TreasurePlatform";
    }

    protected override void Seed(TreasurePlatformDbContext aContext)
    {
        // This method will be called every time after migrating to the latest version.
        // You can …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

4
推荐指数
1
解决办法
729
查看次数

根据用户角色将XML站点地图加载到MvcSiteMapProvider中

我已经安装了MvcSiteMapProvider的v4,现在我想动态加载站点地图.我的需求很简单 - 根据当前登录的用户角色在每个页面请求上加载XML站点地图,例如.AdminSiteMap.xml和UserSiteMap.xml

看来这可以做到:

所以基本上你需要使用DI来实现这个目标(矫枉过正恕我直言).没有 DI 可以做到这一点吗?

因此,当我使用ASP Boilerplate(http://www.aspnetboilerplate.com/)时,我将Castle Windsor作为我的DI.

所以我通过NuGet安装了"MvcSiteMapProvider MVC5 Windsor依赖注入配置".但是现在当我运行应用程序时,我收到以下错误:

SiteMapLoader尚未初始化.

Check the 'MvcSiteMapProvider_UseExternalDIContainer' setting in the AppSettings section of web.config.

If the setting is set to 'false', you will need to call the MvcSiteMapProvider.DI.Composer.Compose() method at the end of Application_Start in the Global.asax file. Alternatively, if you are using .NET 4.0 or higher you can install the MvcSiteMapProvider.MVCx NuGet package corresponding to your MVC version.

If the …
Run Code Online (Sandbox Code Playgroud)

c# asp.net mvcsitemapprovider

3
推荐指数
1
解决办法
2903
查看次数

C#固定字符串长度 - 编译时检查

我想声明一个C#值类型,它只允许特定长度的字符串.所述长度应在编译时验证.这在Delphi中是可行的:

type
  TString10 = string[10];
Run Code Online (Sandbox Code Playgroud)

如果我使用所说的tyoe:

var
  sTen : TString10;

sTen := '0123456789A';   //This generates a compile time error
Run Code Online (Sandbox Code Playgroud)

现在据我所知,你不能在C#中声明一个固定长度的字符串类型.我见过的各种解决方案都不提供C#的编译时检查.因为我准备声明我自己的C#值类型结构这是我可以实现的东西.Format()吗?

所有帮助和指示非常感谢.

PS.我真的想实现字符串长度分配的编译时间检查,所以请不要"你为什么......?"

c# string-length compile-time

2
推荐指数
1
解决办法
3658
查看次数

Visual Studio 2010对.NET 4.5的支持

在网上阅读了很多帖子,在Stack Overflow上有关于此问题,我仍然不确定VS 2010是否支持.NET 4.5.MS在http://www.microsoft.com/en-in/download/details.aspx?id=30653上声明它是一个升级版.NET 4.

这是否意味着一旦安装了VS2010的机器上安装了.NET 4.5,我仍然可以将我的目标保留为.NET 4,但实际上它将使用4.5?由于各种原因,我无法升级到VS 2012.

所有指针都非常感谢.

.net c# visual-studio-2010

2
推荐指数
1
解决办法
3045
查看次数

如何反转.ToString()调用

C#中的每个对象都有可能以ToString()的形式流式传输到字符串.在给出最初生产的字符串的情况下,是否有一个衬垫可以反转过程?

所以:

var stringSomeObject = SomeObject.ToString();
Run Code Online (Sandbox Code Playgroud)

然后反转:

var someObjectFromToString = ??????.FromString(stringSomeObject);
Run Code Online (Sandbox Code Playgroud)

.net c#

2
推荐指数
1
解决办法
2157
查看次数

使用Mailkit使用IMAP保存附件

我需要在Google IMAP服务器上找到特定的电子邮件,然后保存电子邮件中的附件.我想我已经弄明白了,除了确定附件的文件名是什么的部分.

下面是我的代码到目前为止,我希望有人可以指出我正确的方向来确定文件名.

我用Googled和SO'd但是找不到使用附件方法的东西.

internal class MailKitHelper
{
    private void SaveAttachementsForMessage(string aMessageId)
    {
        ImapClient imapClient = new ImapClient();
        imapClient.Connect("imap.google.com", 993, SecureSocketOptions.Auto);
        imapClient.Authenticate("xxxx", "xxxx");

        HeaderSearchQuery searchCondition = SearchQuery.HeaderContains("Message-Id", aMessageId);
        imapClient.Inbox.Open(FolderAccess.ReadOnly);
        IList<UniqueId> ids = imapClient.Inbox.Search(searchCondition);

        foreach (UniqueId uniqueId in ids)
        {
            MimeMessage message = imapClient.Inbox.GetMessage(uniqueId);

            foreach (MimeEntity attachment in message.Attachments)
            {
                attachment.WriteTo("WhatIsTheFileName"); //How do I determine the file name
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# mailkit

2
推荐指数
1
解决办法
2414
查看次数

使用 GetDate() 作为 SELECT DISTINCT 的一部分不是很好吗?

我正在审查一些如下所示的 SQL:

SELECT DISTINCT MyField, GETDATE()
FROM MyTable
Run Code Online (Sandbox Code Playgroud)

现在,即使查询花费的时间超过 1 毫秒,我也会收到预期的记录数。并且每条记录的 DateTime 都降低到相同的毫秒,并且实际上产生与记录相同的数字:

SELECT DISTINCT MyField
FROM MyTable
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我指出任何文档或提供一些其他见解,以了解使这种行为成为 SQL Server 中的行为的“规则”是什么?

sql sql-server

2
推荐指数
1
解决办法
406
查看次数

无法访问 Docker for Windows 上的 RabbitMQ

我确信这里的答案是我在这里遗漏的非常明显的东西。我在 Win 10 Pro 机器上安装了 Docker for Windows。Windows 机器位于 192.168.40/24 网络上。

我按如下方式拉取并安装 RabbitMQ:

docker run -d --hostname my-rabbit  --name some-rabbit rabbitmq:3-management
Run Code Online (Sandbox Code Playgroud)

我可以看到它运行成功:

docker ps -a
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS                    PORTS                                                 NAMES
3cabceeade6e        rabbitmq:3-management   "docker-entrypoint.s…"   7 minutes ago       Up 7 minutes              4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp   some-rabbit
Run Code Online (Sandbox Code Playgroud)

但是我无法在 127.0.0.1 上 telnet 到 5671 或 15672。我也尝试过禁用 Windows 防火墙,但没有成功。

不确定这有什么关系,但 Docker 配置了以下网络设置:

在此处输入图片说明

编辑: IP地址信息是:

 "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "707c66b726b25c80abfebb1712d3bb0ae588dd77c996013bb528de7ac061edd4",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "15671/tcp": null,
                "15672/tcp": null, …
Run Code Online (Sandbox Code Playgroud)

rabbitmq docker

2
推荐指数
1
解决办法
2572
查看次数

我的kubernetes群集IP地址已更改,现在kubectl将不再连接

  • 我曾在Ubuntu下运行,用于kubeadm init设置群集(主节点),并在上复制,/etc/kubernetes/admin.conf $HOME/.kube/config使用时一切正常kubectl
  • 但是,重新启动后,我的主节点的IP地址更改了与原来的IP地址不同的更改,$HOME/.kube/config因此现在我无法再连接kubectl

那么,现在有了新IP地址后,如何重新生成admin.conf?跑步kubeadm init只会杀死我所不想要的一切。

kubernetes

2
推荐指数
3
解决办法
4404
查看次数