【问题标题】:Visual Studio optimizes code even if "optimize code" is not flagged即使未标记“优化代码”,Visual Studio 也会优化代码
【发布时间】:2018-01-23 08:40:00
【问题描述】:

我正在 Visual Studio 2017 框架版本 4.7 中构建一个非常简单的 c# windows Forms 应用程序

即使我的项目在 Debug 模式下编译,代码优化被禁用,TRACE 和 DEBUG 标志为 ON 并且许多其他项目中使用的所有设置都已设置,我也无法使用 Edit and Continue 功能。

问题是我无法使用“编辑并继续”功能。调查我发现在调试期间,模块窗口报告我的启动项目加载了优化的代码,而我所有其他引用的项目都没有按应有的优化。 事实上,我可以毫无问题地调试和编辑引用的库,但我无法编辑主窗体应用程序

从现在开始,这个问题让我发疯了。请帮忙! 如何禁用代码优化?

【问题讨论】:

  • 您使用哪个版本的 Visual Studio 2017?您可以在“帮助”>“关于 Microsoft Visual Studio”下看到它(或类似的东西,我设置了另一种语言)。对我来说,它是 MS VS Enterprise 2017。我从 VS 2015 得知专业版不支持编辑并继续。
  • 我使用的是 Visual Studio 2017 Enterprise;但我可以毫无问题地调试我制作的所有其他项目,即使使用 Visual Studio Community 也是如此。 “专业版不支持编辑并继续的 VS 2015”,这是不正确的
  • 也许您应该尝试将源代码迁移到新项目,看看是否有帮助。如果没有,您也可以修复和/或重新安装 VS。在 VS 2015 的专业版中,我没有启用/禁用 E&C 的选项,所以我猜你可以称之为“不支持”。
  • 我已经重新安装了Visual Studio 2015,然后是2017。我同事的电脑也有这个项目的同样问题,所以它与项目本身有关。我无法重新创建该项目,因为它是一个 ClickOnce 应用程序,已在许多工作站上分发

标签: c# visual-studio debugging optimization edit-and-continue


【解决方案1】:

从 AssemblyInfo.cs 文件中删除该行

[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

解决了我的问题

我不知道是谁添加了这个参数,但是删除它“编辑并继续”开始工作

我还有另一个不需要的参数:

[assembly: CompilationRelaxations(8)]

但这似乎不影响调试器。我还是删除了它

【讨论】:

  • 你应该更认真地对待这件事。这段代码不是程序员写的。可能是因为有人丢失了该代码,而找回它的唯一方法是反编译 exe。或者你可能正在参与犯罪。与您的主管谈谈。
猜你喜欢
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 2022-11-23
  • 2011-04-13
相关资源
最近更新 更多