我正在尝试使用mac环境中的mono xbuild 4.2构建toolversion / targeversion 4.0项目。我使用以下命令:
xbuild /tv:4.0
我可以在编译错误中看到它似乎仍然使用默认的4.5 toolversion:
/usr/local/Cellar/mono/4.2.0.179/lib/mono/4.5/Microsoft.CSharp.targets (CoreCompile目标) - >
Helpers / Formatters / TextMediaTypeFormatter.cs(20,32):错误CS0115:
我检查过.sln和csproj文件,它们不包含对4.5的任何引用, 这是.csproj的一部分。
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> ... <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
...
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
...
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
...
问题的核心是MediaTypeFormatter重写方法,它似乎在4.0和4.5之间使用HttpContent和HttpContentHeaders进行了更改,
我希望通过能够在csproj或相关文件中设置toolversion或目标版本,我可以在mono下构建东西。
我是C#和Mono的新手,所以对我的错误或其他可能的解决方案的任何见解将不胜感激。
编辑:由于项目限制,无法更新到4.5工具/目标/版本。