2017-02-16 24 views
0

В настоящее время я создаю приложение iOS Xamarin Forms поверх .NET Standard v1.3. У меня возникла проблема с компиляцией приложения, когда я использую Xamarin Studio на Mac, но он отлично работает с Visual Studio в Windows и на отдельной машине, на которой запущен новый Visual Studio Preview для Mac.Xamarin Studio для Mac не генерирует * .xaml.g.cs для .NET Standard Xamarin Forms Приложение iOS

В Xamarin студии для Mac, я получаю эту ошибку при компиляции приложения:

App.xaml.cs(25,13): error CS0103: The name `InitializeComponent' does not exist in the current context 
Base/BaseView.xaml.cs(11,13): error CS0103: The name `InitializeComponent' does not exist in the current context 
View/LoginView.xaml.cs(9,13): error CS0103: The name `InitializeComponent' does not exist in the current context 

Это происходит на каждом файле XAML в растворе. Я могу понять, почему - файлы *.xaml.g.cs не создаются. В Visual Studio для Windows и Visual Studio Preview для Mac они помещаются в папку проекта obj/Release, но на Xamarin Studio для Mac они вообще не создаются.

У меня есть другое приложение Xamarin Forms, в котором используется полная .NET Framework, а не .NET Standard. Это приложение прекрасно компилируется на Xamarin Studio для Mac. Это заставляет меня думать, что проблема может быть связана с .NET Standard.

На главном Mac я запускаю Xamarin Studio (6.1.5) с Mono 4.6.2, Xamarin.Android 7.0.2.42, Xamarin.iOS 10.3.1.8. В Windows я запускаю Visual Studio 2015 Update 3 (14.0.25341) с Xamarin 4.2.2.11, Xamarin.Android 7.0.2.42 и Xamarin.iOS 10.3.1.8. На втором Mac я запускаю Visual Studio для Mac Preview 3 (7.0 build 1077) с Xamarin iOS 10.4.0.88.

Я не знаю, поможет ли это вообще, но в Visual Studio для Windows я также получаю эту ошибку в каждом файле XAML (но проект все еще отлично компилируется):

Build action 'EmbeddedResource' is not supported by one or more of the project's targets. 

Есть ли почему, на Xamarin Studio для Mac, файлы *.xaml.g.cs не будут сгенерированы - возможно, связаны с использованием .NET Standard?

Если мне нужно переключиться на Visual Studio Preview для Mac, я это рассмотрю, но я бы предпочел не полагаться на предварительный выпуск инструмента для производственного проекта.

+0

Xamarin не поддерживает .net Core, возможно, вы имеете в виду .net Standard? – Gusman

+0

Извинения - я исправлю сообщение. Да, .NET Standard (1.3). – John

+0

Я думаю, что это проблема: http://stackoverflow.com/questions/38857651/xamarin-studio-targeting-netstandard – Gusman

ответ

1

Если у вас есть стандартный проект .net, включенный в ваше решение, вы должны использовать Xamarin Studio версии 6.2 или выше, иначе он не удастся, предыдущие версии разрешают использовать .net Стандартные библиотеки, а не компилировать проекты этого типа.

+0

Спасибо. В дополнение к использованию XS 6.2 я также обнаружил, что файл решения, который я собирал, не должен иметь проект UWP.При включении проекта UWP я получал сообщение об ошибке «Ссылка на объект, не установленное на экземпляр объекта» при попытке восстановления пакета NuGet. Это, в свою очередь, означало, что цели Xamarin Forms были неправильно установлены, а это значит, что файлы * .xaml.g.cs не были сгенерированы. Полностью удалив проект UWP из решения, разрешенного этим. Обходным путем было также сделать два восстановления NuGet, так как первый не удался, но второй удалось. – John