【问题标题】:Adding 'Xamarin.Forms' to ... Object reference not set to an instance of an object. Bug when adding nuget package将“Xamarin.Forms”添加到...对象引用未设置为对象的实例。添加nuget包时的错误
【发布时间】:2015-12-18 14:47:20
【问题描述】:

我正在使用Windows10,并安装了VS2015,我最初尝试在其上运行 Xamarin,但是由于 1k 的许可证成本,我现在正在尝试 Xamarin Studio,但运气不佳。我从字面上创建了空白项目并尝试构建它并丢失了Xamarin.Forms 参考,当我尝试通过 nuget 添加它时,我得到了以下信息:

添加 Xamarin.Forms... 警告:Xamarin.Forms 包包含 不会运行的 PowerShell 脚本。安装'Xamarin.Forms 2.0.0.6490'。将文件“ICSharpCode.Decompiler.dll”添加到文件夹“Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10”。 将文件“ICSharpCode.NRefactory.Cecil.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“ICSharpCode.NRefactory.CSharp.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“ICSharpCode.NRefactory.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“ICSharpCode.NRefactory.Xml.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Mono.Cecil.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Mono.Cecil.Mdb.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Mono.Cecil.Pdb.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Mono.Cecil.Rocks.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Xamarin.Forms.Build.Tasks.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Xamarin.Forms.Core.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Xamarin.Forms.targets”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Xamarin.Forms.Xaml.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“FormsViewGroup.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoAndroid10'。添加文件 'Xamarin.Forms.Core.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoAndroid10'。添加文件 'Xamarin.Forms.Core.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoAndroid10'。添加文件 'Xamarin.Forms.Platform.Android.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoAndroid10'。添加文件 'Xamarin.Forms.Platform.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoAndroid10'。添加文件 'Xamarin.Forms.Xaml.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoAndroid10'。添加文件 'Xamarin.Forms.Xaml.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoAndroid10'。添加文件 'Xamarin.Forms.Core.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoTouch10'。添加文件 'Xamarin.Forms.Core.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoTouch10'。添加文件 'Xamarin.Forms.Platform.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoTouch10'。添加文件 'Xamarin.Forms.Platform.iOS.Classic.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoTouch10'。添加文件 'Xamarin.Forms.Xaml.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoTouch10'。添加文件 'Xamarin.Forms.Xaml.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\MonoTouch10'。添加文件 'Xamarin.Forms.Core.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Xamarin.Forms.Core.xml”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Xamarin.Forms.Platform.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Xamarin.Forms.Xaml.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Xamarin.Forms.Xaml.xml”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10'。 将文件“Xamarin.Forms.Core.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0'。添加文件 'Xamarin.Forms.Core.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0'。添加文件 'Xamarin.Forms.Platform.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0'。添加文件 'Xamarin.Forms.Platform.UAP.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0'。添加文件 'Xamarin.Forms.Platform.UAP.pri' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0'。添加了文件“FormsTextBox.xbf” 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0\Xamarin.Forms.Platform.UAP'。 将文件“PageControl.xbf”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0\Xamarin.Forms.Platform.UAP'。 将文件“Xamarin.Forms.Platform.UAP.rd.xml”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0\Xamarin.Forms.Platform.UAP\Properties'。 将文件“Resources.xbf”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0\Xamarin.Forms.Platform.UAP'。 将文件“Xamarin.Forms.Platform.UAP.xr.xml”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0\Xamarin.Forms.Platform.UAP'。 将文件“Xamarin.Forms.Xaml.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0'。添加文件 'Xamarin.Forms.Xaml.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\uap10.0'。添加文件 'Xamarin.Forms.Core.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81'。添加文件 'Xamarin.Forms.Core.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81'。添加文件 'Xamarin.Forms.Platform.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81'。添加文件 'Xamarin.Forms.Platform.WinRT.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81'。添加文件 'Xamarin.Forms.Platform.WinRT.pri' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81'。添加文件 'Xamarin.Forms.Platform.WinRT.Tablet.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81'。添加文件 'Xamarin.Forms.Platform.WinRT.Tablet.pri' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81'。将文件“Resources.xbf”添加到 文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81\Xamarin.Forms.Platform.WinRT.Tablet'。 将文件“TabletResources.xbf”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81\Xamarin.Forms.Platform.WinRT.Tablet'。 将文件“Xamarin.Forms.Platform.WinRT.Tablet.xr.xml”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81\Xamarin.Forms.Platform.WinRT.Tablet'。 将文件“FormsTextBox.xbf”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81\Xamarin.Forms.Platform.WinRT'。 将文件“PageControl.xbf”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81\Xamarin.Forms.Platform.WinRT'。 将文件“StepperControl.xbf”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81\Xamarin.Forms.Platform.WinRT'。 将文件“Xamarin.Forms.Platform.WinRT.xr.xml”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81\Xamarin.Forms.Platform.WinRT'。 将文件“Xamarin.Forms.Xaml.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81'。添加文件 'Xamarin.Forms.Xaml.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\win81'。添加文件 'Xamarin.Forms.Core.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\WP80'。添加文件 'Xamarin.Forms.Core.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\WP80'。添加文件 'Xamarin.Forms.Platform.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\WP80'。添加文件 'Xamarin.Forms.Platform.WP8.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\WP80'。添加文件 'Xamarin.Forms.Xaml.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\WP80'。添加文件 'Xamarin.Forms.Xaml.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\WP80'。添加文件 'Xamarin.Forms.Core.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81'。添加文件 'Xamarin.Forms.Core.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81'。添加文件 'Xamarin.Forms.Platform.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81'。添加文件 'Xamarin.Forms.Platform.WinRT.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81'。添加文件 'Xamarin.Forms.Platform.WinRT.Phone.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81'。添加文件 'Xamarin.Forms.Platform.WinRT.Phone.pri' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81'。添加了文件“PhoneResources.xbf” 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81\Xamarin.Forms.Platform.WinRT.Phone'。 将文件“Resources.xbf”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81\Xamarin.Forms.Platform.WinRT.Phone'。 将文件“SearchBox.xbf”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81\Xamarin.Forms.Platform.WinRT.Phone'。 将文件“Xamarin.Forms.Platform.WinRT.Phone.xr.xml”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81\Xamarin.Forms.Platform.WinRT.Phone'。 将文件“Xamarin.Forms.Platform.WinRT.pri”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81'。将文件“FormsTextBox.xbf”添加到 文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81\Xamarin.Forms.Platform.WinRT'。 将文件“PageControl.xbf”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81\Xamarin.Forms.Platform.WinRT'。 将文件“StepperControl.xbf”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81\Xamarin.Forms.Platform.WinRT'。 将文件“Xamarin.Forms.Platform.WinRT.xr.xml”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81\Xamarin.Forms.Platform.WinRT'。 将文件“Xamarin.Forms.Xaml.dll”添加到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81'。添加文件 'Xamarin.Forms.Xaml.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\wpa81'。添加文件 'Xamarin.Forms.Core.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\Xamarin.iOS10'。添加文件 'Xamarin.Forms.Core.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\Xamarin.iOS10'。添加文件 'Xamarin.Forms.Platform.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\Xamarin.iOS10'。添加文件 'Xamarin.Forms.Platform.iOS.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\Xamarin.iOS10'。添加文件 'Xamarin.Forms.Xaml.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\Xamarin.iOS10'。添加文件 'Xamarin.Forms.Xaml.xml' 到文件夹 'Xamarin.Forms.2.0.0.6490\lib\Xamarin.iOS10'。将文件“init.ps1”添加到 文件夹“Xamarin.Forms.2.0.0.6490\tools”。添加文件 'Xamarin.Forms.Core.Design.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\tools'。添加文件 'Xamarin.Forms.Xaml.Design.dll' 到文件夹 'Xamarin.Forms.2.0.0.6490\tools'。添加文件 'Xamarin.Forms.2.0.0.6490.nupkg' 到文件夹'Xamarin.Forms.2.0.0.6490'。 成功安装“Xamarin.Forms 2.0.0.6490”。添加 'Xamarin.Forms 2.0.0.6490' 到 EmergencyAssistanceResponseSystem。 对象引用未设置为对象的实例。

从最后几行来看,它似乎是 nuget,因为它可以舒适地坐在packages/Xamarin.Forms.2.0.0.6490 中,但无论出于何种原因在项目中都无法引用Adding 'Xamarin.Forms 2.0.0.6490' to EmergencyAssistanceResponseSystem. Object reference not set to an instance of an object.

我该如何进一步调试它,因为很明显缺少一些参考但是在哪里和什么?

EDIT1: 事实上,在我的情况下(C:\Users\[User]\AppData\Local\XamarinStudio-5.0\Logs)的日志文件中,我能够找到以下内容:

Could not add Xamarin.Forms.
System.NullReferenceException: Object reference not set to an instance of an object.
   at NuGet.NetPortableProfileTable.GetProfile(String profileName)
   at NuGet.NetPortableProfile.Parse(String profileValue, Boolean treatOptionalFrameworksAsSupportedFrameworks)
   at NuGet.VersionUtility.IsPortableLibraryCompatible(FrameworkName projectFrameworkName, FrameworkName packageTargetFrameworkName)
   at NuGet.VersionUtility.IsCompatible(FrameworkName projectFrameworkName, FrameworkName packageTargetFrameworkName)
   at NuGet.VersionUtility.<>c__DisplayClass19`1.<TryGetCompatibleItems>b__13(IGrouping`2 g)
   at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.OrderedEnumerable`1.<GetEnumerator>d__1.MoveNext()
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
   at NuGet.VersionUtility.TryGetCompatibleItems[T](FrameworkName projectFramework, IEnumerable`1 items, IEnumerable`1& compatibleItems)
   at NuGet.ProjectSystemExtensions.GetCompatibleItemsCore[T](IProjectSystem projectSystem, IEnumerable`1 items)
   at NuGet.ProjectManager.ExtractPackageFilesToProject(IPackage package)
   at NuGet.ProjectManager.AddPackageReferenceToProject(IPackage package)
   at NuGet.ProjectManager.Execute(PackageOperation operation)
   at NuGet.ProjectManager.Execute(IPackage package, IPackageOperationResolver resolver)
   at NuGet.ProjectManager.AddPackageReference(IPackage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
   at NuGet.ProjectManager.AddPackageReference(String packageId, SemanticVersion version, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
   at ICSharpCode.PackageManagement.SharpDevelopPackageManager.AddPackageReference(IPackage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
   at ICSharpCode.PackageManagement.SharpDevelopPackageManager.InstallPackage(IPackage package, InstallPackageAction installAction)
   at ICSharpCode.PackageManagement.PackageManagementProject.InstallPackage(IPackage package, InstallPackageAction installAction)
   at ICSharpCode.PackageManagement.InstallPackageAction.ExecuteCore()
   at ICSharpCode.PackageManagement.ProcessPackageAction.Execute()
   at MonoDevelop.PackageManagement.BackgroundPackageActionRunner.RunActionsWithProgressMonitor(IProgressMonitor monitor, IList`1 packageActions)
   at MonoDevelop.PackageManagement.BackgroundPackageActionRunner.RunActionsWithProgressMonitor(ProgressMonitorStatusMessage progressMessage, IList`1 installPackageActions)

【问题讨论】:

  • 您使用的是什么 Xamarin 版本?初学者,独立?
  • @CSharpRocks 这个ctrlv.cz/UaTX
  • 如果您使用的是 Xamarin Studio,则完整的异常调用堆栈应位于 IDE 日志中(帮助 - 打开日志目录)。这可能表明问题出在哪里。

标签: c# xamarin nuget xamarin.forms xamarin-studio


【解决方案1】:

如果引用有问题,在您的项目文件夹内会有“Package”文件夹,使用 Xamarin studio 您可以手动添加 dll,这样做:

  1. 右键单击参考文件夹(在每个平台上)
  2. 点击“编辑参考”
  3. 导航到名为“.Net Assembly”的选项卡
  4. 浏览到项目中的包文件夹并添加缺少的特定 .dll。

注意:如果包文件夹不包含您要查找的块,您可以添加您已经下载的其他项目的dll,然后您将能够编译。希望这会有所帮助。

【讨论】:

  • 这只是我作为临时解决方案所做的,但是我更愿意正确解决它,因为这种解决方案使所有可能导致 dll 地狱的 dll 管理手册。
  • 根据我的经验,无论你做什么,Visual Studio 中的 Xamarin 都会导致 dll 地狱。
猜你喜欢
  • 2014-08-22
  • 2019-07-03
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
  • 2019-11-24
  • 1970-01-01
相关资源
最近更新 更多