mono - CSC : error CS0041: Unexpected error writing debug information -- 'Operation is not supported on this platform.'

标签 mono roslyn pdb-files xbuild visual-studio-mac

刚刚下载了适用于 Mac 的 Visual Studio Professional,我似乎无法构建任何东西,因为我总是遇到相同的错误:

/Library/Frameworks/Mono.framework/Versions/4.8.0/lib/mono/xbuild/14.0/bin/Microsoft.CSharp.targets (CoreCompile target) ->

CSC: error CS0041: Unexpected error writing debug information -- 'Operation is not supported on this platform.'

 19 Warning(s)
 1 Error(s)

不知道要在我的项目上更改什么才能编译。

最佳答案

我可以通过两种方式解决这个问题:

  • 黑客 通过从构建中删除调试符号(在 VS 窗口中:项目属性 -> 构建选项卡 -> 高级按钮 -> 将“调试信息”下拉列表更改为“无”——不确定 VS for Mac/Xamarin Studio 中的等效项是什么)我对受影响项目的所有配置执行此操作。拉回 macOS 环境,现在构建成功。当然没有调试信息,但它可以在不破坏任何依赖的情况下工作。
  • 非黑客 根本原因是对 ASP.NET Web 项目使用 Roslyn 编译器/工具,该工具生成 PDB 文件而不是 MDB 文件,并且构建尝试在 macOS 平台上生成 PDB 文件失败(呃,“平台不受支持”。)根本原因我们还可以从受影响的项目中删除以下 nuget 包:
    <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net45" />
    <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net45" developmentDependency="true" />
    

  • 目前尚不清楚删除这两个包会牺牲什么。这确实允许我构建包含调试信息的受影响项目。受影响的项目仅包含 webapi 端点,并没有使用 MVC 和 Razor 引擎。如果他们在此更改的上游遇到问题,很高兴听到其他人的经验。

    HTH

    关于mono - CSC : error CS0041: Unexpected error writing debug information -- 'Operation is not supported on this platform.' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40639999/

    相关文章:

    mono - Xamarin 支持应用内购买吗

    mono - 有人使用 uClibc 为 MIPS 64 交叉编译 Mono 吗?

    c# - 绑定(bind)到 MvvmCross for MonoDroid/Android 中的 Path ImageView

    c# - 如何使用 FieldTypeDeclaration ( Roslyn ) 更改字段类型

    python - Python 的程序数据库 (PDB) 符号

    c# - Newtonsoft.JSON Mono Float反序列化异常

    c# - 如何使分析仪针对特定项目?

    c# - 如何获取属性的支持字段(AssociatedPropertyOrEvent 为空)?

    .net - 是否可以恢复启用 EmbedAllSources 构建的 nuget 包的源代码?

    c# - 在 Visual Studio 中使用 Pdb 文件和源代码文件进行调试