I'm using Visual Studio for Mac and I'm getting an error when trying to publish a AspNetCore app using .Net Core 2.0. I look at the stack trace for the failure and it shows me an error accessing com.xamarin.universalinstaller.
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: The "VSMSDeploy" task failed unexpectedly.
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: System.Security.SecurityException: No access to the given key ---> System.UnauthorizedAccessException: Access to the path "/Library/Application Support/com.xamarin.universalinstaller" is denied.
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at System.IO.Directory.CreateDirectoriesInternal (System.String path) [0x0005f] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/Directory.cs:121
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at System.IO.Directory.CreateDirectory (System.String path) [0x0008f] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/Directory.cs:85
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at System.IO.DirectoryInfo.Create () [0x00000] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/DirectoryInfo.cs:144
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at (wrapper remoting-invoke-with-check) System.IO.DirectoryInfo:Create ()
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at System.IO.Directory.CreateDirectoriesInternal (System.String path) [0x00030] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/Directory.cs:103
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at System.IO.Directory.CreateDirectory (System.String path) [0x0008f] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/Directory.cs:85
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.Win32.KeyHandler..ctor (Microsoft.Win32.RegistryKey rkey, System.String basedir, System.Boolean is_volatile) [0x00038] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:152
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: --- End of inner exception stack trace ---
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.Win32.KeyHandler..ctor (Microsoft.Win32.RegistryKey rkey, System.String basedir, System.Boolean is_volatile) [0x00042] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:154
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.Win32.KeyHandler..ctor (Microsoft.Win32.RegistryKey rkey, System.String basedir) [0x00000] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:132
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.Win32.KeyHandler.Lookup (Microsoft.Win32.RegistryKey rkey, System.Boolean createNonExisting) [0x000bf] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:428
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.Win32.UnixRegistryApi.OpenSubKey (Microsoft.Win32.RegistryKey rkey, System.String keyname, System.Boolean writable) [0x00000] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:867
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.Win32.RegistryKey.OpenSubKey (System.String name, System.Boolean writable) [0x0001b] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/Microsoft.Win32/RegistryKey.cs:466
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.Win32.RegistryKey.OpenSubKey (System.String name) [0x00000] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/mono-x64/mcs/class/corlib/Microsoft.Win32/RegistryKey.cs:450
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at (wrapper remoting-invoke-with-check) Microsoft.Win32.RegistryKey:OpenSubKey (string)
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.NET.Sdk.Publish.Tasks.MsDeploy.Utility.CheckMSDeploymentVersion () [0x0005e] in <a8bbf6f62d6e4b888cb2558952dc0635>:0
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.NET.Sdk.Publish.Tasks.MsDeploy.Utility.get_IsMSDeployInstalled () [0x00013] in <a8bbf6f62d6e4b888cb2558952dc0635>:0
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.NET.Sdk.Publish.Tasks.MsDeploy.Utility.CheckMSDeploymentVersion (Microsoft.Build.Utilities.TaskLoggingHelper log, System.String& errorMessage) [0x00003] in <a8bbf6f62d6e4b888cb2558952dc0635>:0
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.NET.Sdk.Publish.Tasks.MsDeploy.VSMSDeploy.Execute () [0x00034] in <a8bbf6f62d6e4b888cb2558952dc0635>:0
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () [0x00023] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/msbuild-15.4/src/Build/BackEnd/TaskExecutionHost/TaskExecutionHost.cs:631
/usr/local/share/dotnet/sdk/2.0.0/Sdks/Microsoft.NET.Sdk.Publish/build/netstandard1.0/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets(138,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder+<ExecuteInstantiatedTask>d__26.MoveNext () [0x0022d] in /Users/builder/data/lanes/4992/mono-mac-sdk/external/bockbuild/builds/msbuild-15.4/src/Build/BackEnd/Components/RequestBuilder/TaskBuilder.cs:787
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:05.75
I looked on my file system and /Library/Application Support/com.xamarin.universalinstaller wasn't there.
I haven't found any information about this installer regarding VSMSDeploy.
My question is this, do I need to install this separately? If so, where do I get it? Do I have a corrupt install of VS (I've tried reinstalling and got no error)? Why is this needed for VSMSDeploy?
I actually feel kind of stupid about this, but I simply tried creating the missing folder.
/Library/Application Support/com.xamarin.universalinstaller
After I tried publishing, it complained that a subfolder of com.xamarin.universalinstaller called LocalMachine couldn't be found so I created that.
/Library/Application Support/com.xamarin.universalinstaller/LocalMachine
And now VS Mac publishes like a dream.