Понял об этом, посмотрев файлы .targets Xamarin.
Короткая версия
Вы можете:
- Создание Android C++ проект библиотеки и ссылки, что из проекта Xamarin Android
или
- Прокомментируйте элемент
Import
, определенный в% PROGRAMFILES (x86)% \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.After.targets. Обратите внимание, что это скорее всего отключит поддержку для добавления ссылок на проекты C++ на проекты Xamarin Android.
Как только вы сделаете один из этих проектов, ваш проект Xamarin Android должен быть построен и запущен.
Long Version
Во-первых, обратите внимание на ошибку в окне вывода VS:
C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common\ImportAfter\Microsoft.Cpp.Android.targets(54,9): error MSB4044: The "MergeApkRecipelists" task was not given a value for the required parameter "RecipeFiles".
Файл Microsoft.Cpp.Android.targets упоминается в сообщении об ошибке выглядит все о поддержка ссылок на проекты C++. В нем элемент для MergeApkRecipelists
задачи выглядит так:
<!-- language: lang-xml -->
<MergeApkRecipelists RecipeFiles="@(_NativeAndroidRecipeFiles)">
...
</MergeApkRecipelists>
Переменная NativeAndroidRecipeFiles
, кажется, не быть определены в файлах .targets, поэтому предположительно он инициализируется в процессе сборки. Но так как файл .targets, кажется, направлен на поддержку C++ рефов проекта, я попытался добавление Android C++ общего проект библиотеки для моего решения:
Тогда я сослался на проекте C++ из моего проекта Xamarin Android, и вуаля! После этого успех был успешным.
Но так как это довольно обременительно, чтобы принести фиктивную библиотеку, я также отслеживал, куда втягивается файл Microsoft.Cpp.Android.targets от Xamarin.Это происходит в C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.After.targets файл, который имеет один Import
элемент:
<!-- language: lang-xml -->
<Import Project="$(MSBuildThisFileDirectory)\Xamarin.Android.Common\ImportAfter\*"
Condition="Exists('$(MSBuildThisFileDirectory)\Xamarin.Android.Common\ImportAfter')"/>
Это приносит все под% ProgramFiles (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common \ ImportAfter. Поскольку единственным элементом в этом каталоге является файл .targets, который мы хотим исключить, это можно прокомментировать, не затрагивая ничего другого. Но примечание что, поскольку этот файл .targets является частью поддержки для ссылки на проекты на C++ из проектов Xamarin Android, комментируя это, предположительно означает, что он больше не будет работать должным образом.
С заявлением Import
, проект Xamarin Android должен строиться и запускаться без ссылок на C++.
Я вижу то же самое –
У нас есть ошибка, зарегистрированная здесь: https://bugzilla.xamarin.com/show_bug.cgi?id=24510 –
Я вижу это для VS2010 и VS2013. Я не могу заставить VS2015 даже видеть, что Xamarin установлен. Похоже, ошибок много. Вы бы знали, что Ксамарин был вовлечен. – DaveDev