尝试在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)
bin
和obj
文件夹以尝试重建。.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-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日]
答案 0 :(得分:3)
此问题是由项目路径中的#
字符引起的。删除它解决了这个问题。
答案 1 :(得分:1)
有线...但是关闭Visual Studio并重新打开解决了我的问题
答案 2 :(得分:0)
我遇到了同样的问题,这是由于C:\User\name\.nuget
文件夹是符号链接(使用MKLINK创建的)引起的,它指向更大驱动器上的目录。当我将NUGET_PACKAGE
环境变量设置为软件包目录的实际位置时,此问题已解决。
答案 3 :(得分:0)