cmd 上的 dotnet build 与 VS2017 的区别在哪里?

2023-11-30

背景

一个简单的 dotnet core 2.0 项目依赖于 Xamarin.Forms (2.3.4.270)。

enter image description here

当我在 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>

问题

  1. 区别在哪里dotnet build和 Visual Studio 2017 来构建此类项目?我的印象是 VS2017 也只是调用dotnet build.
  2. 我怎样才能解决这个问题?

此版本的 Xamarin.Forms 表单包含无法在 .NET Core 版本的 MSBuild 上加载的生成任务,这就是您需要使用完整框架版本的 MSBuild(包含在 VS 中)的原因。

有一些关于这个包的讨论这个 GitHub 问题.

如果包含 MSBuild 任务的包不是专门为支持 .NET Core 和 .NET Framework MSBuild 而编写的,则可能会出现这些错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cmd 上的 dotnet build 与 VS2017 的区别在哪里? 的相关文章

随机推荐