来自docs:
Linux上配置文件的默认位置是/etc/docker/daemon.json
但我没有在我的新鲜docker安装上:
# docker --version
Docker version 17.03.1-ce, build c6d412e
# ls -la /etc/docker/
total 12
drwx------ 2 root root 4096 Apr 28 17:58 .
drwxr-xr-x 96 root root 4096 Apr 28 17:58 ..
-rw------- 1 root root 244 Apr 28 17:58 key.json
# lsb_release -cs
trusty
Run Code Online (Sandbox Code Playgroud) 由于此错误,我无法在Visual Studio中使用代码映射:
无法连接到指定的数据库.
尝试使用以下连接字符串连接到数据库时发生异常:Data Source =(LocalDB)\ v11.0; AttachDbFilename =; Initial Catalog = master; Integrated Security = True; Enlist = False; Asynchronous Processing = True; MultipleActiveResultSets =正确;连接超时= 30.
检查指定的SQL Server实例是否存在且服务是否正在运行.
我已经用同样的问题阅读了这些问题:
1)我已经为VS2012安装了 SQL Server数据工具
2)我更新了VS,并重新安装了SQL Server组件(在默认的卸载/修改/修复菜单中)
3)然后我成功停止并删除了本地数据库(如第二个问题):
sqllocaldb停止"v11.0"-k
sqllocaldb删除"v11.0"
但未能创建一个:
sqllocaldb创建"v11.0"
由于以下错误,LocalDB实例"v11.0"的创建失败:
此计算机上没有指定的LocalDB版本.
但是创建和启动另一个版本成功了:
sqllocaldb创建"v12.0"
使用版本12.0.2000.8创建的LocalDB实例"v12.0".
sqllocaldb启动"v12.0"
LocalDB实例"v12.0"已启动.
现在我很困惑实际上是错的.在每个步骤之后,我重新启动VS并尝试使用图表 - 但没有任何改变.
如何解决问题?
使用VS2017,我在一个空的解决方案中创建了一个ClassLibrary(.NET Framework 4.6.2).然后我在那里安装了System.Net.Http 4.3.2包,并HttpClient在Class1构造函数中使用了类.
然后我创建了一个ConsoleApp(.NET Framework 4.6.2),引用了ClassLibrary并Class1在Main方法中实例化.
现在运行ConsoleApp会导致运行时异常:
未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集'System.Net.Http,Version = 4.1.1.1,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.在[...]中的ConsoleApp1.Program.Main(String [] args)的ClassLibrary1.Class1..ctor()中
在详细的构建日志中,我看到以下消息:
2>"System.Net.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"和"System.Net.Http,Version = 4.1.1.1,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"之间存在冲突.
2>选择"System.Net.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a",因为它是主要的,"System.Net.Http,Version = 4.1.1.1,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a " 不是.
假设我无法System.Net.Http从ConsoleApp中删除引用,因为我在实际项目结构中有这种情况.
Specific Version的参数System.Net.Http
引用并没有帮助.<bindingRedirect oldVersion="0.0.0.0-4.1.1.1"
newVersion="4.1.1.1" /> …我的解决方案包括:
Client - 启动项目,UI层.依赖于取决于:App
App - 库,应用程序层,汇编程序.取决于:Lib1,......
Lib1 - 库,业务逻辑层.需要特定文件才能正常工作:ThirdParty.dll
我已经添加ThirdParty.dll到Lib1项目中(Add> Existing Item...> Add),并设置Copy to Output DirectoryDLL文件的属性Copy Always.现在dll文件被复制到Lib1输出和App输出,但不是复制到Client我需要的输出.
什么是复制ThirdParty.dll到Client每个解决方案构建的输出的正确(简单?明显?)方式?
UPD
ThirdParty.dll不是参考.实际上,这是另一个参考依赖.我的问题适用于需要在运行应用程序的文件夹中的任何文件.
录制的视频,以确保我做得对:http://youtu.be/QwS2tOIc5yQ
编译器会优化此代码还是在每次调用方法后初始化集合?
private string Parse(string s)
{
var dict = new Dictionary<string, string>
{
{"a", "x"},
{"b", "y"}
};
return dict[s];
}
Run Code Online (Sandbox Code Playgroud)
如果答案是否定的,我建议使用此解决方案:在C#中创建常量字典
我在文档中看到很多示例,其中设置了单元格的数据类型:
ws.Cell(1, 1).SetDataType(XLCellValues.Text);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试为列设置数据类型时:
ws.Column(1).SetDataType(XLCellValues.Text)
Run Code Online (Sandbox Code Playgroud)
ClosedXML生成5MB文件,实际上并未设置数据类型.
此操作在Excel中按预期工作(右键单击列标题,格式化单元格,...).
如果它是ClosedXML的限制,是否可以轻松修复,还是有解决方法?
来自具有未使用方法的类的继承是否违反了接口隔离原则?
例如:
abstract class Base
{
public void Receive(int n)
{
// . . . (some important work)
OnMsg(n.ToString());
}
protected abstract void OnMsg(string msg);
}
class Concrete : Base
{
protected override void OnMsg(string msg)
{
Console.WriteLine("Msg: " + msg);
}
}
Run Code Online (Sandbox Code Playgroud)
Concrete取决于方法Base.Receive(int n),但它从不使用它.
UPD
我使用的定义:
ISP声明不应该强迫任何客户端依赖它不使用的方法.
c# inheritance solid-principles interface-segregation-principle
我应该选择哪种方法?为什么?有什么真正的区别吗?
抽象属性:
abstract class Table
{
public abstract string Title { get; }
}
class InfoTable : Table
{
public override string Title
{
get { return "Info"; }
}
}
Run Code Online (Sandbox Code Playgroud)
或基类构造函数参数:
abstract class Table
{
public string Title { get; private set; }
public Table(string title)
{
Title = title;
}
}
class InfoTable : Table
{
public InfoTable() : base("Info") { }
}
Run Code Online (Sandbox Code Playgroud) 首先,我遇到了这个构建错误,但只在某些机器上:
错误CS1705汇编'***',标识'***,版本= 1.0.0.0,Culture =中性,PublicKeyToken = null'使用'System.Net.Http,Version = 4.1.1.1,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a '它的版本高于引用的程序集'System.Net.Http',标识为'System.Net.Http,Version = 4.1.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'***C:\***\CSC 1有效
我想,它与SDK版本有某种联系.从我在"属性"窗口中可以看到的,在我拥有的一些项目上,Microsoft.NETCore.App 1.1.1而在其他项目中Microsoft.NETCore.App 1.1.2.
包更新后,构建成功(但为什么我被迫更新所有包?).
但是,sdk版本仍然不同.现在我正在尝试使用Visual Studio的这个整合功能:
在工具提示中说:
由于项目或packages.config中的其他约束,以下版本是不可用的
如何将所有项目升级到更新的SDK?如何确保未来不打破其他机器的构建?
我已经创建并部署了一个生产堆栈:
const app = new cdk.App();
const stack = new cdk.Stack(app, 'myorg-production-api');
Run Code Online (Sandbox Code Playgroud)
现在更改命名架构很重要,我需要此堆栈为myorg-api-production-root.
当然,我可以通过手动销毁旧的,然后部署新的来做到这一点(两者不能同时存在,因为像 DNS 记录这样的“单一”资源),但这意味着巨大的停机时间,我需要不惜一切代价避免。
我可以以某种方式干预 CDK 的堆栈身份确定过程并更改堆栈名称而不需要停机吗?
rename downtime amazon-web-services aws-cloudformation aws-cdk
c# ×7
.net ×3
.net-core ×1
aws-cdk ×1
closedxml ×1
code-map ×1
dependencies ×1
dictionary ×1
docker ×1
downtime ×1
inheritance ×1
interface-segregation-principle ×1
properties ×1
rename ×1
sql-server ×1
ubuntu ×1
ubuntu-14.04 ×1