相关疑难解决方法(0)

Visual Studio - 在编辑后继续获取错误"无法找到元数据文件'XYZ'

我偶然发现了一个非常烦人的问题.
当我调试我的软件时,一切运行正常,但如果我点击断点并编辑代码,当我尝试继续运行时,我收到一个错误:
Metadata file 'XYZ' could not be found

看了一会儿之后,我发现了一些类似的问题,但它们都是关于构建失败的,这不是我的情况(这只发生在edit-continue之后).

到目前为止我尝试了什么:

  • 我的代码正在编译和运行.
  • 我清理了解决方案并重新启动了VS.
  • 我确保正在为正在运行的配置构建缺少的文件项目(在配置管理器中).
  • 我手动构建了丢失文件的项目.

一些额外的信息:

  • 无论我改变什么,仍然会得到相同的错误(更改与丢失的文件无关).
  • 当我暂停并继续(不仅是断点)时也会发生这种情况
  • 我正在使用自定义配置(配置管理器...)运行项目.当我使用默认Debug配置运行它时,不会发生错误.

有任何想法吗?

c# configuration edit-and-continue visual-studio visual-studio-2012

71
推荐指数
6
解决办法
14万
查看次数

在asp.net应用程序中启用c#7

我刚刚开始在Visual Studio 2017中使用我的旧解决方案.只需打开旧IDE中的解决方案即可无缝工作.c#应用程序项目现在默认为c#7.0编译器.这些项目的属性页面(编译/高级)可以轻松选择编译器的目标语言版本,默认为最新版本.

我找不到在asp.net web项目中启用c#7.0的方法.如果我写一个如下声明:

if (int.TryParse("1", out int myInt)) { ... }
Run Code Online (Sandbox Code Playgroud)

IDE警告我说我需要使用该语言的7+版本.

我对这个主题的研究表明,我应该定位web.config文件的system.codedom编译器区域中的特定c#版本,以便定位最新的Roslyn版本.

我现在拥有的是:

  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
Run Code Online (Sandbox Code Playgroud)

针对c#6的目标是什么.只要我已经使用nuget下载了最新的Roslyn,c#7的正确设置是什么?

更新 下面是Web项目可用的编译选项的屏幕截图(它是意大利语VS2017,但应该很容易理解).没有可能在那里选择目标c#版本.

编译选项

c# asp.net c#-7.0 visual-studio-2017

53
推荐指数
4
解决办法
2万
查看次数