mrward/monodevelop-dnx-addin

Xamarin Studio not finishing project creation

RobGibbens opened this issue · 2 comments

See screencast here.

Using the latest Xamarin Studio Alpha (as of June 6, 2016 - version 6.1 build 817) on Mac. Also the latest DNX extension from the Alpha repository.

Clicking File-New solution, for Console Application or Asp.Net Core Web Application starts creating the project on disk, but the Wizard never finishes. The .sln file that gets created has a global.json file referenced, but that file does not exist on disk. There is no Program.cs or any code created by the wizard.

I have tried this on two Macs, with the same result.

Also, when I ran the Wizard on Xamarin Studio Beta, it DID create the project, but it wouldn't build, and I had intellisense errors on every line.

Currently the DNX addin does not work with Xamarin Studio 6.1 (build 817). This is because there was a breaking API change made recently to the latest Xamarin Studio 6.0 (build 5166) which is not backward compatible.

In the IDE log (Help - Open Log Directory) I see the following exception when trying to create a project in Xamarin Studio 6.1 (817).

Could not load signature of MonoDevelop.Dnx.DnxProject:OnGetReferencedAssemblies due to: Failed for unknown reasons. assembly:MonoDevelop.Core, Version=2.6.0.0, Culture=neutral, PublicKeyToken=null type:MonoDevelop.Projects.AssemblyReference member:<none>
ERROR [2016-06-06 20:36:39Z]: An unhandled exception has occured. Terminating Xamarin Studio? False
System.TypeLoadException: Could not load type 'MonoDevelop.Dnx.DnxProject' from assembly 'MonoDevelop.Dnx, Version=0.3.0.0, Culture=neutral, PublicKeyToken=null'.
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00022] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/corlib/System.Reflection/MonoMethod.cs:656 
  at System.RuntimeType.CreateInstanceMono (Boolean nonPublic) [0x000ca] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/corlib/ReferenceSources/RuntimeType.cs:115 
  at System.RuntimeType.CreateInstanceSlow (Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, System.Threading.StackCrawlMark& stackMark) [0x0001a] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/corlib/ReferenceSources/RuntimeType.cs:89 
  at System.RuntimeType.CreateInstanceDefaultCtor (Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, System.Threading.StackCrawlMark& stackMark) [0x0002a] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/external/referencesource/mscorlib/system/rttype.cs:5599 
  at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00040] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/external/referencesource/mscorlib/system/activator.cs:201 
  at System.Activator.CreateInstance (System.Type type) [0x00000] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/external/referencesource/mscorlib/system/activator.cs:134 
  at Mono.Addins.TypeExtensionNode.CreateInstance () [0x00000] in /Users/builder/data/lanes/3190/23357635/source/monodevelop/main/external/mono-addins/Mono.Addins/Mono.Addins/TypeExtensionNode.cs:93 
  at Mono.Addins.InstanceExtensionNode.CreateInstance (System.Type expectedType) [0x00000] in /Users/builder/data/lanes/3190/23357635/source/monodevelop/main/external/mono-addins/Mono.Addins/Mono.Addins/InstanceExtensionNode.cs:88 
  at MonoDevelop.Projects.Extensions.SolutionItemExtensionNode.CreateExtension () [0x00000] in /Users/builder/data/lanes/3190/23357635/source/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Extensions/SolutionItemExtensionNode.cs:98 
  at MonoDevelop.Projects.WorkspaceObject.InitializeExtensionChain () [0x00095] in /Users/builder/data/lanes/3190/23357635/source/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceObject.cs:380 
  at MonoDevelop.Projects.WorkspaceObject.EnsureInitialized () [0x0003e] in /Users/builder/data/lanes/3190/23357635/source/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceObject.cs:73 
  at MonoDevelop.Projects.WorkspaceObject.Initialize[T] (MonoDevelop.Projects.T instance) [0x0003f] in /Users/builder/data/lanes/3190/23357635/source/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceObject.cs:61 
  at MonoDevelop.Dnx.XProject..ctor () <0x12e625c70 + 0x00078> in <filename unknown>:0 
  at MonoDevelop.Dnx.FileTemplateProcessor.CreateFileFromTemplate (MonoDevelop.Projects.Solution solution, FilePath templateSourceDirectory, System.String templateName) <0x12e625b70 + 0x00045> in <filename unknown>:0 
  at MonoDevelop.Dnx.FileTemplateProcessor.CreateFileFromCommonTemplate (MonoDevelop.Projects.Solution solution, System.String fileTemplateName) <0x12e6258f0 + 0x000c5> in <filename unknown>:0 
  at MonoDevelop.Dnx.DnxProjectTemplateWizard.AddSolutionFoldersToSolution (MonoDevelop.Projects.Solution solution) <0x12e0f98b0 + 0x00036> in <filename unknown>:0 
  at MonoDevelop.Dnx.DnxProjectTemplateWizard.ItemsCreated (IEnumerable`1 items) <0x12e0f8eb0 + 0x00055> in <filename unknown>:0 
  at MonoDevelop.Ide.Projects.NewProjectDialogController+<Create>c__async0.MoveNext () [0x00462] in /Users/builder/data/lanes/3190/23357635/source/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs:592 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00047] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 
  at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:113 
  at MonoDevelop.Ide.Projects.GtkNewProjectDialogBackend+<MoveToNextPage>c__async0.MoveNext () [0x00053] in /Users/builder/data/lanes/3190/23357635/source/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs:413 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>m__0 (System.Object state) [0x00000] in /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/external/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1018 
  at MonoDevelop.Ide.DispatchService+GtkSynchronizationContext+<Post>c__AnonStorey0.<>m__0 (System.Object , System.EventArgs ) [0x00000] in /Users/builder/data/lanes/3190/23357635/source/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DispatchService.cs:52 
  at Gtk.Application+InvokeCB.Invoke () <0x1277ec3a0 + 0x00021> in <filename unknown>:0 
  at GLib.Timeout+TimeoutProxy.Handler () <0x1277ebc90 + 0x0004a> in <filename unknown>:0 

The DotNetProject class's OnGetReferencedAssemblies was changed recently to return an array of AssemblyReferences when it was previously returned an array of strings. Since the DNX addin is doing some quite low level work with assembly references the addin was broken by this change.

This looks to be fixed in the latest version 6.1 (build 4963).

The only problem I see is that the images are missing for the templates in the new project dialog. It looks like the image ids have been changed in 6.1.