小编riq*_*ang的帖子

Visual Studio 2017无法更新Microsoft.NETCore.App包("按项目阻止")

我有一个针对Microsoft.NETCore.App 1.1.2的dotnet核心应用程序.我创建了一个测试项目来测试该项目,但在构建时我注意到了这个警告: 在此输入图像描述

我打开NuGet包管理器并看到警告是正确的,正在测试的项目有不同版本的Microsoft.NETCore.App: 在此输入图像描述 在此输入图像描述

我的问题是Visual Studio不允许我更新该版本,所以我对如何解决这个问题感到困惑: 在此输入图像描述 理想情况下,我只需单击下拉列表并选择正确的版本,但Visual Studio声称由于"项目或packages.config中的其他约束"而无法执行此操作.我该怎么更新那个包?Visual Studio指的是什么"附加约束"?

.net-core visual-studio-2017

78
推荐指数
4
解决办法
3万
查看次数

如何判断事件是否来自C#中的用户输入?

我有一个小表单,上面有一些复选框,并且每个复选框都有一个消息处理程序CheckChanged.由于某些复选框依赖于其他复选框,因此如果一个复选框的选中状态发生更改,则会更改任何相关复选框的选中状态.我发现这导致事件在其他复选框上引发,但我的问题是每个事件都有一个函数调用,只有当事件来自用户实际单击复选框时才应调用.我想知道如何判断事件是否是由鼠标点击引起的(可能是发件人或者发件人EventArgs)CheckChanged.

悬崖:

  • 多个复选框接收CheckChanged事件
  • 需要确定是否通过鼠标单击引发事件

c# checkbox event-handling winforms

14
推荐指数
1
解决办法
1654
查看次数

通过RabbitMQ发送二进制文件

我现在正在设计一个使用RabbitMQ作为消息队列的设计.消息将具有JSON主体,特别是对于一条消息,我想添加一个小的二进制文件.

我想知道的是,二进制文件的数据是否应该是JSON消息的一部分,还是可以单独附加到消息中?

rabbitmq

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

如何连接到在Ubuntu主机上运行的远程docker

我按照官方指示在Ubuntu 16.04上安装了docker,并成功运行了注册表作为容器.我想远程连接到另一个容器,所以我尝试:

docker -H tcp://1.2.3.4:2375 exec -it 19f36d1bdfaf /bin/bash
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

连接期间出错:发布 http://1.2.3.4:2375/v1.29/containers/19f36d1bdfaf/exec:拨打tcp 1.2.3.4:2375:connectex:无法建立连接,因为目标计算机主动拒绝连接.

经过几个小时的谷歌搜索没有解决方案我被迫向StackOverflow提出这个问题:为什么我会收到此错误,我该如何解决?

docker.json文件包含以下内容:

{
  "hosts": [
    "tcp://0.0.0.0:2375",
    "npipe://"
  ]
}
Run Code Online (Sandbox Code Playgroud)

当我查看服务时,看起来守护进程没有像我期望的那样在tcp://0.0.0.0:2375上进行监听(这只是用于测试,一旦我能够实际工作,我将保证这一点): 在此输入图像描述

更新:

通过创建daemon.json文件(docker.json的副本),然后运行:部分工作

sudo dockerd
Run Code Online (Sandbox Code Playgroud)

这个问题是现在客户端不起作用:docker info导致错误:

无法在unix:///var/run/docker.sock连接到Docker守护程序.docker守护程序是否正在运行?

更新和解决方案: Andreas的回答帮助我意识到守护进程没有正常运行.查看本文前面的截图,未使用右-H选项启动docker守护程序.然后我发现这个Github问题解决了这个问题.所以需要的只是:

  • 编辑/ etc/default/docker中的$ DOCKER_OPTS变量:( DOCKER_OPTS="-H tcp://0.0.0.0:2375"请注意,这不是很安全,只是用于测试)
  • 编辑/lib/systemd/system/docker.service文件,[Service]为EnvironmentFile 添加一行:EnvironmentFile=-/etc/default/docker然后更新ExecStart行:ExecStart=/usr/bin/dockerd $DOCKER_OPTS -H fd://
  • 重启服务 sudo service docker restart
  • 用,重启守护进程 systemctl daemon-reload

请注意,我没有添加daemon.json文件 - 我离开了现有docker.json文件.

docker

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

量角器等待超时捕捉并继续

我在量角器中有一段代码可以等待:

public waitForElement() {
    return browser.wait(
        ExpectedConditions.visibilityOf(element(by.id('#someEl'))),
        10000,
        'Unable to find the element'
        );
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果超时,我似乎无法捕获此异常。我尝试添加一个 catch() 子句,但它不起作用,例如:

this.waitForElement()
    .then(() => { /* do something */ })
    .catch(() => { /* handle the error -- this code never happens if there is a timeout!!! */ });
Run Code Online (Sandbox Code Playgroud)

我尝试将代码放在 try-catch 块中,但这也无济于事:

try { this.waitForElement().then(() => { }); }
catch (ex) { /* this exception is never caught, the test just fails!! */ }
Run Code Online (Sandbox Code Playgroud)

我很难过:我怎样才能赶上等待超时并继续测试而不会失败?

protractor

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

.NET Core JWTBearer跳过自签名证书验证,以与身份服务器进行本地通信

我有两个API项目,一个基于.NET Framework 4.6.2(旧的API),另一个基于.NET Core 2.0。旧的API可以非常简单地禁用自签名证书验证:

System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
Run Code Online (Sandbox Code Playgroud)

但是,此代码在.NET Core中不起作用(即使它可以很好地编译),并且在API尝试进行通信时(尤其是在尝试从身份服务器获取发现文档时)引起了我的问题,这是相反的代理,在此环境中,该代理具有用于https的自签名证书)。我在StackOverflow上看到过类似的问题,但所有答案都与HttpClient的创建方式有关。对我来说,问题是我无法控制HttpClient的创建方式(令牌验证是中间件,我看不到任何方法来控制其创建HttpClient的方式),所以我想知道是否存在全局方法在.NET Core中跳过自签名证书验证?

编辑:我的问题似乎与此问题密切相关,但是我已经采取了自签名证书,并将其加载到了容器(运行api的地方)和我的本地计算机(容器正在运行的地方)的受信任根目录中,并且我仍然收到证书验证错误。

.net-core identityserver4 asp.net-core-webapi

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

静态成员不首先被初始化

Type-Safe枚举模式之后,我创建了一个小型的安全枚举类.首次调用主对话框时,在调用InitializeComponent之后,它会调用另一个类的构造函数,该类尝试将其中一个类变量设置为类型安全枚举类的静态实例之一.问题是所有这些实例(以及它看起来的类)都是null,从而导致程序崩溃.

如何让程序首先构造该类及其所有实例?我有点困惑,因为我认为静态实例是在程序开始时创建的,那么为什么在这种情况下不能这样做呢?

这是我失败的代码的浓缩版本: 类型安全的枚举模式实现:

public sealed class Types
{
   public static readonly Types INVALID = new Types(-1, "Invalid");
   ... (other static instances and other implementations of the type-safe enum pattern)
}
Run Code Online (Sandbox Code Playgroud)

主对话框的初始化:

public dlgMain()
{
   InitializeComponent();
   m_OtherClass = new OtherClass();
   ...
}
Run Code Online (Sandbox Code Playgroud)

OtherClass的构造函数

public OtherClass()
{
   m_eType = Types.INVALID; // Crash!! the entire type-safe enum class and its static members are null!
   ...
}
Run Code Online (Sandbox Code Playgroud)

编辑:好的,这是问题,

public sealed class Types
{
   public static readonly Types …
Run Code Online (Sandbox Code Playgroud)

c# static-members

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

TypeScript 点击事件处理程序

在 Javascript 中,以下代码按预期工作:

$("#field").click(eventHandler);

function eventHander() {
  invokeClassMethod();
  // do other stuff
}
Run Code Online (Sandbox Code Playgroud)

我在 Typescript 中尝试了此操作,但收到错误,因为“this”的上下文似乎已更改为不属于我的类的内容。

$("#field").click(this.eventHandler);

eventHandler() {
  this.invokeClassMethod();
  // do other stuff
}
Run Code Online (Sandbox Code Playgroud)

给我一个错误,因为“invokeClassMethod”未定义。

我是 Typescript 的新手,有人可以告诉我出了什么问题以及如何修复它吗?

typescript jquery-events

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

适用于 Windows 的 Docker 桌面——如何指定可执行入口点?

指定可执行入口点的正确语法是什么?例如,我构建了一个生成可执行文件(例如“example.exe”)的项目,该项目被复制到C:\app. 我似乎无法Dockerfile正确获取入口点,它总是失败,总是与无法找到指定的 exe、路径无效等有关。 Dockerfile 看起来像:

FROM microsoft/aspnet:4.6.2-windowsservercore  
ARG source=.  
WORKDIR /app  
COPY $source .   
ENTRYPOINT ["/app/example.exe"]
Run Code Online (Sandbox Code Playgroud)

我在入口点尝试了许多字符串:

  • 例子.exe
  • C:\\app\\example.exe
  • /应用程序/example.exe

这些字符串都不起作用,所以我对如何运行该 exe 作为入口点感到困惑。

或者我可能误解了“入口点”的使用,而我需要使用诸如“运行”之类的其他东西?

docker docker-for-windows docker-desktop

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

XCode无法找到AppKit

我正在学习iPad开发,我正在重构我的项目以使用Kobold2d.它一直很顺利,但我一直试图使用labelWithString初始化CCLabelTTF:dimensions:hAlignment:vAlignment:fontName:fontSize:initializer,bit是问题,对于hAlignment和vAlignment,期望值(CCTextAlignment和CCVerticalTextAlignment)已折旧.我读到要使用的值是NSTextAlignment,它们可以在AppKit框架中找到.

事情变得棘手; XCode似乎拒绝承认AppKit框架的存在.当我转到"target-> Summary-> Linked Frameworks and Libraries"并尝试添加框架时,AppKit不会显示为选项.不过,我能够找到它并通过在System/Library/Frameworks中搜索并从那里添加它来添加它.然而即使添加它,XCode仍然不允许我做"#import".这更奇怪,因为使用AppKit的cocos2d类在导入它时没有任何问题.

我完全失去了为什么我的项目似乎拒绝允许我使用AppKit框架; 是否存在某种必须完成的框架搜索路径包含?

xcode ipad kobold2d

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

如何在没有if-else的情况下无限循环或循环到一个限制

我想知道是否有一种方法可以编写一个接受一个输入的函数,循环次数的最大计数,如果数字是负数则会执行无限循环,而不使用if-else

void func(int nAttempts) // if nAttempts <= 0, do an infinite loop
{
  if ( nAttempts <= 0 )
  { // do an infinite loop
  }
  else
  { // do a loop up to nAttemtps
  }
}
Run Code Online (Sandbox Code Playgroud)

如果没有if-else,我想知道是否有办法做到这一点

c++ loops

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

简洁的方式来声明一个numpy矩阵

什么是简短,可读的方式来声明每行999x999 numpy矩阵[1,2,3,...,999]?最终矩阵应该是:

[[1,2,3,...,999]
[1,2,3,...,999]
...
[1,2,3,...,999]]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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

Google地图比较职位

所以我正在尝试比较当前的点,我正在使用一个小循环和一个日志,但循环ALWAYS评估为false,即使它是真的.例如,控制台将显示位置应评估为true,但最终评估为false: 在此输入图像描述

这个循环的代码片段看起来像这样:

    var temp = new google.maps.LatLng(lat,lng);
                    for (var i=0; i<gmarkers.length; i=i+2) {
                        console.log('gmarkers[i].getPosition() = '+gmarkers[i].getPosition());
                    console.log('temp = '+temp);
                    console.log(gmarkers[i].getPosition()==temp);
                          ...
                          ...
Run Code Online (Sandbox Code Playgroud)

我想知道是否需要进行任何额外的解析来正确评估此代码,或者除了使用"=="或"==="运算符之外如何比较这些点?

javascript google-maps

0
推荐指数
1
解决办法
1578
查看次数