刚刚下载了Visual Studio Professional for Mac,我似乎无法构建任何东西,因为我总是得到同样的错误:
/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)
不确定要在我的项目中更改要编译的内容。
答案 0 :(得分:14)
我能够通过两种方式解决这个问题:
HACK 通过从构建中删除调试符号(在VS窗口中:项目属性 - >构建选项卡 - >高级按钮 - >更改"调试信息&#34 ;下拉到"无" - 不确定VS for Mac / Xamarin Studio中的等价物)我为受影响项目的所有配置做了这个。回到macOS env,现在构建成功。当然没有调试信息,但它可以在不破坏任何代码的情况下工作。
NON-HACK 根本原因是使用Roslyn编译器/工具进行ASP.NET Web项目,并且此工具生成PDB文件而不是MDB文件,并且构建失败尝试在macOS平台上生成PDB文件(er go" platform unsupported"。)了解根本原因我们还可以从受影响的项目中删除以下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
答案 1 :(得分:5)
这是一个很快就会修复的错误。同时,您可以编辑csproj文件以添加
<DebugType Condition="'$(OS)' != 'Windows_NT'">portable</DebugType>
在<DebugType>full</DebugType>
或<DebugType>pdbonly</DebugType>
基本上,我们希望Mac上的DebugType
属性为portable
,而非Windows平台上的Roslyn csc.exe
支持该属性,而不是pdb
。
答案 2 :(得分:3)
要解决此问题,您需要执行以下操作:
选择项目
右键单击并选择选项
它解决了这个错误,但又给了我一个
&#34; System.IO.FileNotFoundException无法找到文件&#34; / Users /.../.../ bin \ roslyn \ csc.exe&#34;
答案 3 :(得分:0)
我希望不要来得太晚,我通过以下措施解决了这个问题:
右键单击解决方案,然后选择“选项”,
选择标签Build-> Configurations
在“配置A”中。选择“调试”并禁用所有构建标记,然后单击接受,
清洁,重建和执行项目。
我希望这会有所帮助。
答案 4 :(得分:0)
删除行后
<DebugType>pdbonly</DebugType>
从.csproj
文件开始,构建成功。