MonoDevelop构建失败,找不到Microsoft.DiaSymReader.Native.x86.dll文件。

4
我正在尝试在Mac上使用Monodevelop构建Web API项目。经历了一些小问题(在一个混乱的问题中已经解释并删除),我现在遇到了以下错误:
/Users/myuser/git/LiveData/LiveData/CSC: Error CS0041: Unexpected error writing debug information -- 'Windows PDB writer is not available -- could not find Microsoft.DiaSymReader.Native.x86.dll' (CS0041) (LiveData)

在Windows机器上,使用Visual Studio针对Mono 4.5进行构建,可以得到相同的项目。
当我点击错误时,它告诉我/Users/myuser/git/LiveData/LiveData/CSC不存在。
另外一件事是,在解决方案的文件夹结构中,有一个包文件夹(不是项目内部的那个),其中包含一个名为Microsoft.Net.Compilers 1.3.2的文件夹,里面有另一个名为“tools”的文件夹,其中包括csc.exe等文件和无法找到的dll。
我已经尝试使用Nuget直接将DLL安装在项目中,但即使安装了,构建也显示了相同的错误。
谢谢。

这是哪个版本的MonoDevelop?Microsoft.DiaSymReader程序集是什么? - knocte
不,我的意思是我写的那个:它是什么,它来自哪里?为什么编译需要它? - knocte
哦,AFAIK 是一个用于读写 PDB 文件的实现。 - mitomed
有关此事有任何进展/见解吗?我们遇到了同样的问题。 - Patrick
很遗憾,Patrick,我放弃了,直到我有更多时间来完成这个项目。所以如果你有任何更新,请务必发布。 - mitomed
显示剩余3条评论
3个回答

2

目前的解决方法是限制使用Microsoft.Net.Compilers只在Release配置下使用(编辑*.csproj文件):

<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="'$(Configuration)' == 'Release' And Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />

请看条件的开始:

'$(Configuration)' == 'Release'

这样我就可以在本地构建和调试,并在appharbor中构建我的项目。

1
在发布配置下构建项目应该可以解决这个问题!

应该是一个注释 - Inzimam Tariq IT
好的,刚刚加入。为什么? - Simon Schmid

0

这可能与问题不完全相关,但在某些方面可能有所帮助。关于“找不到Microsoft.DiaSymReader.Native.x86.dll”的问题,请查看GitHub上的此问题:https://github.com/dotnet/cli/issues/3016

似乎解决方案是:

  • 需要依赖于Microsoft.NETCore.Platforms以获取RID图形,该依赖项缺失。任何具有对它的传递依赖关系的包(如NETStandard.Library)也可以使事情正常工作。
  • 添加依赖项“Microsoft.NETCore.Platforms”:“1.0.1-”或
    “NETStandard.Library”:“1.5.0-”可使其正常工作。
  • 添加Microsoft.NETCore.Platforms也可以正常工作

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接