背景
一个简单的 dotnet core 2.0 项目依赖于 Xamarin.Forms (2.3.4.270)。
当我在 Visual Studio 2017 (15.3) 中构建项目时,构建成功。跑步时dotnet build
在命令行上它失败并出现以下错误:
C:\Users\steph.nuget\packages\xamarin.forms\2.3.4.270\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets(40,3 ):
错误 MSB4062:“Xamarin.Forms.Build.Tasks.FixedCreateCSharpManifestResourceName”任务
无法从程序集中加载
C:\Users\steph.nuget\packages\xamarin.forms\2.3.4.270\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.Build.Tasks.dll 。
无法加载文件或程序集“Microsoft.Build.Utilities.v4.0,
版本=4.0.0.0,文化=中立,PublicKeyToken=b03f5f7f11d50a3a'。
该系统找不到指定的文件。确认
声明是正确的,大会及其所有
依赖项可用,并且任务包含公共类
实现 Microsoft.Build.Framework.ITask。
[C:\Users\steph\Documents\Bitbucket\time-stamp-core\TimeStamp.Core.Views\TimeStamp.Core.Views.csproj]
所以无论出于什么原因Microsoft.Build.Utilities.v4.0
不见了。正如您在上面的屏幕截图中看到的,我也已经尝试添加构建实用程序,但没有成功。无论是否添加构建核心,我都会得到相同的结果。
.csproj
file:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="15.3.409" />
<PackageReference Include="Xamarin.Forms" Version="2.3.4.270" />
</ItemGroup>
</Project>
问题
- 区别在哪里
dotnet build
和 Visual Studio 2017 来构建此类项目?我的印象是 VS2017 也只是调用dotnet build
.
- 我怎样才能解决这个问题?
此版本的 Xamarin.Forms 表单包含无法在 .NET Core 版本的 MSBuild 上加载的生成任务,这就是您需要使用完整框架版本的 MSBuild(包含在 VS 中)的原因。
有一些关于这个包的讨论这个 GitHub 问题.
如果包含 MSBuild 任务的包不是专门为支持 .NET Core 和 .NET Framework MSBuild 而编写的,则可能会出现这些错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)