我最近从 Visual Studio 2017 社区版更新到了 Visual Studio 2019 社区版。
现在,如果我构建我的解决方案时出现错误,它们将显示在构建输出中,但并非所有错误都会出现在错误列表中。似乎只有打开文件的错误才会显示在错误列表中。这是令人难以置信的烦人。
在这个问题上,我并不孤单。微软的论坛上已经多次报道过,但没有人有明确的解决方案。
我尝试了人们在这些线程中建议的各种解决方案:
我之前在其他版本的带有 Razor 页面的 Visual Studio 中遇到过这种情况。据我所知,这在 Razor 中是可以预料的。
我严重怀疑影响任何事情的唯一另一个因素是它是由 Unity 编辑器生成的 Visual Studio 项目。据我所知,ASP.NET、Razor、Xamarin 和其他框架都报告了自己的问题版本。也许 Unity 也受到它的影响,但我不明白如何或为什么。我怀疑 Unity 自动生成的 Visual Studio 项目与您的标准库项目有什么不同。
我的问题非常简单:您如何获得错误消息!?
我只需要离开顶部的红色框,上面写着“Script CustomSort 遇到错误”,这几乎是最模糊的!
更深入地说,以下内容大约在一周前有效,现在不再有效。我至少一个月没碰剧本了。虽然已添加行。我将电子表格恢复到以前工作时的状态,但它仍然不起作用。
function onOpen()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [ {name: "Custom Sort", functionName: "CustomSort"}];
ss.addMenu("Sort", menuEntries);
CustomSort();
}
function CustomSort()
{
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(2,1,sheet.getMaxRows()-1,sheet.getMaxColumns());
var headers = sheet.getRange(1, 1, 1, sheet.getMaxColumns()).getValues();
var sortOrder = new Array;
sortOrder.push({ column: headers[0].indexOf("Completion Date")+1, ascending: true });
sortOrder.push(headers[0].indexOf("Owner")+1);
sortOrder.push(headers[0].indexOf("Tentative Due Date")+1);
sortOrder.push({ column: headers[0].indexOf("Priority")+1, ascending: false });
sortOrder.push(headers[0].indexOf("Department")+1);
range.sort(sortOrder);
}
Run Code Online (Sandbox Code Playgroud)
我可以在脚本编辑器中运行脚本而没有错误,但我的理解是它运行带有空工作表的脚本(这是真的吗?),这可能表明工作表中存在问题。
如果有错误甚至是行号,我会很快弄清楚!我试图避免撕开相当大的电子表格或代码来解决这个问题。
我已经做了一堆谷歌搜索,并且有很多类似的问题是谷歌问题的参考,但我认为这个问题已经存在好几天了。
(我也没有记录日志的运气,这进一步限制了我的调试能力。总之,我觉得我在调试工具部门有障碍。我唯一的策略是将所有内容简化为最简单的测试用例,然后慢慢地一次添加一行代码或一行电子表格,直到它爆炸为止。当然必须有更好的方法;哦,伟大的互联网,请给我你的智慧!)
我有两个全新的 C# .NET 标准库。它们每个都有一个对旧版 .NET 3.5 Framework 库的项目引用。两者中只有一个在参考上有黄色图标。
一切都建立并运行良好,但三角形仍然存在,为什么?
今天将 Application Insights 升级到最新版本后,由于我们的站点不再报告调用堆栈,我们的 .NET Framework 4.6.1 ASP.NET 站点现在在初始化时崩溃,原因如下:
System.IO.FileLoadException: 'Could not load file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)'
Run Code Online (Sandbox Code Playgroud)
过去我曾为另一份工作解决过一个非常相似的问题。主要区别在于该问题是由 .NET Core 或 Standard 中的 Nuget 包引起的。因此,有多个同名的 .NET DLL 被复制到 bin 文件夹(在这种情况下为 System.Net.Http)。在那种情况下,它就像不再更新那个 Nuget 包一样“容易”......
虽然我认为这里的情况略有不同,但“不升级”不再是一种选择。Application Insights 不再报告调用堆栈有点违背了整个事情的目的!
因为它是 System.Runtime,而不是 Nuget 包,所以在配置文件中没有依赖版本标记;尽管即使那样也会奏效,但这似乎是一个临时解决方案。
我的理论是,现在项目中某个地方可能隐藏了 .NET Core 的 .NET Standard,但我没有看到 NetStandard 参考,我不知道如何判断 Core 是否以某种方式被拖入。我还没有很高兴 (?) 与 Standard 或 Core 一起工作,但我还没有想到更多。我会继续谷歌搜索...
我认为这是因为我们有一个 …
今天启动了一个全新的 ASP.NET Core 站点。按照说明添加会话。我们在索引页上打印出会话 ID,它始终是唯一的。
我认为这可能是 cookie 合规性,所以我在 Chrome 的高级设置和调试器中取消了所有 cookie。但是横幅不会再次出现让我接受。
我也尝试过简单地禁用 CheckConsentNeeded,但这也没有影响。
除了上述调整外,几乎是默认项目和 MSDN 的副本:
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDistributedMemoryCache();
services.AddSession(options =>
{
// Set a short timeout for easy testing.
options.IdleTimeout = TimeSpan.FromSeconds(10);
options.Cookie.HttpOnly = true;
//options.Cookie.SecurePolicy = CookieSecurePolicy.Always; //require https
// Make the session cookie essential
options.Cookie.IsEssential = true;
});
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user …Run Code Online (Sandbox Code Playgroud)