由于在14.9.2017上安装了Windows更新,因此在我们的发布版本中创建特定结构时出现问题。我注意到没有该更新的计算机上的编译代码按预期运行(“错误的开始:1.1.1990 ...”),在安装了有关更新的计算机上,代码无法正常工作(“错误的开始:1.1。 2000 ...“)。这发生在从4.x版开始的.NET Frameworks的所有版本中。Windows更新损坏.Net 4.x中的结构构造
class Program
{
static void Main(string[] args)
{
DateTime start1 = new DateTime(1990, 1, 1, 6, 0, 0);
DateTime end1 = new DateTime(2000, 1, 1, 6, 0, 0);
var r2 = new DateTimeRange(start1, end1);
var r3 = new Range<DateTime>(r2.From, r2.To);
Console.WriteLine($"Wrong start: {r3.From}, correct start: {start1}");
Console.ReadLine();
}
}
public struct DateTimeRange
{
private Range<DateTime> m_range;
public DateTimeRange(DateTime from, DateTime to)
{
m_range = new Range<DateTime>(from, to);
}
public DateTime From
{
get { return m_range.From; }
}
public DateTime To
{
get { return m_range.To; }
}
}
public struct Range<T> where T : struct
{
private T m_from;
private T m_to;
public Range(T from, T to)
{
m_from = from;
m_to = to;
}
public T From
{
get { return m_from; }
}
public T To
{
get { return m_to; }
}
}
定义“工作错误”。什么症状/错误? – DiskJunky
该日期安装了哪些Windows更新? – AKX
删除项目中的bin文件夹并重新编译。新的Bin文件夹将被创建。编译器无法识别对Framework的依赖,因此编译器不会自动更新所有对象。因此删除bin会强制编译器完全重新编译项目。 – jdweng