错误MSB4061:" XamlCTask"任务无法实例化

时间:2017-06-15 19:51:02

标签: visual-studio xamarin xamarin.forms msbuild-task

尝试在Visual Studio for Mac社区(7.0.1 [build 24])上编译Xamarin Forms(2.3.4.247)项目时,我在编码一段时间后仍然遇到以下两个错误,任何关于导致它的原因的线索和如何解决?

/Users/PathToProjectRoot/packages/Xamarin.Forms.2.3.4.247/build/portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20/Xamarin.Forms.targets(3,3): Error MSB4061: The "XamlCTask" task could not be instantiated from "/Users/PathToProjectRoot/packages/Xamarin.Forms.2.3.4.247/build/portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20/Xamarin.Forms.Build.Tasks.dll". Could not load file or assembly 'Xamarin.Forms.Build.Tasks' or one of its dependencies (MSB4061) (ProjectName)
/Users/PathToProjectRoot/packages/Xamarin.Forms.2.3.4.247/build/portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20/Xamarin.Forms.targets(3,3): Error MSB4060: The "XamlCTask" task has been declared or used incorrectly, or failed during construction. Check the spelling of the task name and the assembly name. (MSB4060) (ProjectName)

我尝试了什么

  • 更新了所有软件包和SDK。
  • 清理/重建解决方案。
  • 删除所有软件包,关闭VS,重新打开并恢复所有软件包。
  • 删除了所有binobj文件夹以尝试重建。
  • 检查3 .csproj以查看2.3.4.247之前的任何过时导入。
  • 创建新解决方案。

有效的方法

使用Xamarin Forms创建一个新的干净解决方案但是这会导致所有包都来自旧版本。我已经两次完成了这项工作,但我希望能够停止这样做,因为需要花费大量时间将所有文件从已损坏的项目传输到新项目。

什么没有用?

除了我尝试过的所有内容之外,提及在相同解决方案中清除了所有以前的项目之后创建新项目并不是一件有用的事情并不能解决问题。问题。
这让我觉得它是一个解决方案级错误而不是项目级错误。

安装了哪些软件包

Xamarin.Android.Support.Animated.Vector.Drawable.25.3.1
Xamarin.Android.Support.Annotations.25.3.1
Xamarin.Android.Support.Compat.25.3.1
Xamarin.Android.Support.Core.UI.25.3.1
Xamarin.Android.Support.Core.Utils.25.3.1
Xamarin.Android.Support.Design.25.3.1
Xamarin.Android.Support.Fragment.25.3.1
Xamarin.Android.Support.Media.Compat.25.3.1
Xamarin.Android.Support.Transition.25.3.1
Xamarin.Android.Support.Vector.Drawable.25.3.1
Xamarin.Android.Support.v4.25.3.1
Xamarin.Android.Support.v7.AppCompat.25.3.1
Xamarin.Android.Support.v7.CardView.25.3.1
Xamarin.Android.Support.v7.MediaRouter.25.3.1
Xamarin.Android.Support.v7.Palette.25.3.1
Xamarin.Android.Support.v7.RecyclerView.25.3.1
Xamarin.Build.Download.0.4.5
Xamarin.Forms.2.3.4.247

安装了哪些Android平台

android-23
android-25

导致错误的文件

错误是由包含以下行的文件Xamarin.Forms.targets引起的:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <UsingTask TaskName="Xamarin.Forms.Build.Tasks.XamlGTask" AssemblyFile="Xamarin.Forms.Build.Tasks.dll"/>
    <UsingTask TaskName="Xamarin.Forms.Build.Tasks.FixedCreateCSharpManifestResourceName" AssemblyFile="Xamarin.Forms.Build.Tasks.dll"/>
    <UsingTask TaskName="Xamarin.Forms.Build.Tasks.XamlCTask" AssemblyFile="Xamarin.Forms.Build.Tasks.dll"/>

    <!-- Some more lines here ...  -->

    <Target Name="XamlC">
        <!-- /!\ Error flagged at next line's "<" -->
        <XamlCTask
            Assembly = "$(IntermediateOutputPath)$(TargetFileName)"
            ReferencePath = "@(ReferencePath)"
            Verbosity = "2"
            OptimizeIL = "true"
            DebugSymbols = "$(DebugSymbols)"
            DebugType = "$(DebugType)"/>
    </Target>
</Project>

最新更新

[ 6月16日]

  • 在尝试多次创建新解决方案后,我现在无法创建一个能够构建的解决方案。无论我的软件包是什么版本,我都会遇到这两个错误。
  • See the Build output here.

4 个答案:

答案 0 :(得分:3)

此问题是由项目路径中的#字符引起的。删除它解决了这个问题。

答案 1 :(得分:1)

有线...但是关闭Visual Studio并重新打开解决了我的问题

答案 2 :(得分:0)

我遇到了同样的问题,这是由于C:\User\name\.nuget文件夹是符号链接(使用MKLINK创建的)引起的,它指向更大驱动器上的目录。当我将NUGET_PACKAGE环境变量设置为软件包目录的实际位置时,此问题已解决。

答案 3 :(得分:0)

我正面临着像您一样的类似问题。我更新了许多依赖项,并删除了一些依赖项。

我正在使用此版本的VS

enter image description here

我尝试了所有答案,但是没有用。

我遵循了“以防万一”的方法(前面在此答案线程中已经提到过)。杀死VS实例并重新打开它。然后,当我执行该项目时,所有错误都消失了。