Xamarin — использование xbuild для сборки проекта с добавлением компонента xamarin

Xbuild [Xamarin Studio] на mac os x

Я пытаюсь создать решение и (файл проекта Visual Studio) csproj, используя xbuild. Это решение содержит проект, который не является стартовым проектом и имеет ссылку на Newtonsoft [добавлено с использованием компонента xamarin]. Обратите внимание, что компонент помечен как «Включенный в этот проект».

Решение и проект прекрасно работают в Xamarin, однако при удалении всего решения и его файлов. Теперь с помощью Team City загрузите проект, а затем используйте Xbuild для создания того же решения, и оба проекта завершатся сбоем со следующим сообщением об ошибке:

Я добавил снимок сообщения об ошибке

    [18:01:48]  [Step 3/4] ../../../../NESQuestionFramework/NESQuestionFramework/Model/Evidence/EvidenceNotRequired.cs(1,7): error CS0246: The type or namespace name `Newtonsoft' could not be found. Are you missing an assembly reference?

[18:01:48]  [Step 3/4] ../../../../NESQuestionFramework/NESQuestionFramework/Model/Evidence/PhotoEvidence.cs(1,7): error CS0246: The type or namespace name `Newtonsoft' could not be found. Are you missing an assembly reference?

[18:01:48]  [Step 3/4] ../../../../NESQuestionFramework/NESQuestionFramework/Model/Evidence/TextEvidence.cs(1,7): error CS0246: The type or namespace name `Newtonsoft' could not be found. Are you missing an assembly reference?

[18:01:48]  [Step 3/4] ../../../../NESQuestionFramework/NESQuestionFramework/Model/Questions/BoundedQuestion.cs(3,7): error CS0246: The type or namespace name `Newtonsoft' could not be found. Are you missing an assembly reference?

[18:01:48]  [Step 3/4] ../../../../NESQuestionFramework/NESQuestionFramework/Model/Questions/ExtendedInfoQuestion.cs(11,7): error CS0246: The type or namespace name `Newtonsoft' could not be found. Are you missing an assembly reference?

[18:01:48]  [Step 3/4] ../../../../NESQuestionFramework/NESQuestionFramework/Model/Questions/InfoItem.cs(4,7): error CS0246: The type or namespace name `Newtonsoft' could not be found. Are you missing an assembly reference?

[18:01:48]  [Step 3/4] ../../../../NESQuestionFramework/NESQuestionFramework/Model/Questions/MultiResponseQuestion.cs(11,7): error CS0246: The type or namespace name `Newtonsoft' could not be found. Are you missing an assembly reference?

[18:01:48]  [Step 3/4] ../../../../NESQuestionFramework/NESQuestionFramework/Model/Questions/Question.cs(11,7): error CS0246: The type or namespace name `Newtonsoft' could not be found. Are you missing an assembly reference?

[18:01:48]  [Step 3/4] ../../../../NESQuestionFramework/NESQuestionFramework/Model/Questions/QuestionSet.cs(2,7): error CS0246: The type or namespace name `Newtonsoft' could not be found. Are you missing an assembly reference?

Xbuild пытается проверить путь ValidateAndroidPackage, однако не может найти пакет Newtonsoft.Json.

        Target _ValidateAndroidPackageProperties:

            GetAndroidPackageName Task

              ManifestFile: 

              AssemblyName: NESQuestionFramework

              PackageName: NESQuestionFramework.NESQuestionFramework

        Target _AndroidResolveAssemblyReferences:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: предупреждение: ссылка «Newtonsoft.Json» не разрешена

            For searchpath {CandidateAssemblyFiles}

            Warning: {CandidateAssemblyFiles} not supported currently

            For searchpath {HintPathFromItem}

            Considered ../../Components/json.net-4.5.11/lib/android/Newtonsoft.Json.dll, but it does not exist.

            For searchpath {TargetFrameworkDirectory}

            Considered target framework dir /Library/Frameworks/Mono.framework/External/xbuild-frameworks/MonoAndroid/v4.0.3, assembly named 'Newtonsoft.Json' not found.

            Considered target framework dir /Library/Frameworks/Mono.framework/External/xbuild-frameworks/MonoAndroid/v1.0, assembly named 'Newtonsoft.Json' not found.

            Considered target framework dir /Library/Frameworks/Mono.framework/External/xbuild-frameworks/MonoAndroid/v1.0/Facades/, assembly named 'Newtonsoft.Json' not found.

            For searchpath {PkgConfig}

            Considered Newtonsoft.Json, but could not find in any pkg-config files.

            For searchpath {GAC}

            Considered Newtonsoft.Json, but could not find in the GAC.

            For searchpath {RawFileName}

            Considered '/Users/admin/Downloads/TeamCity/buildAgent/work/b998b8d1d0b0ff61/NESTouch/NESTouch.Android/NESQuestionFramework.Android/NESQuestionFramework.Android/Newtonsoft.Json' as a file, but the file does not exist

            For searchpath bin/Debug/

            Considered '/Users/admin/Downloads/TeamCity/buildAgent/work/b998b8d1d0b0ff61/NESTouch/NESTouch.Android/NESQuestionFramework.Android/NESQuestionFramework.Android/bin/Debug/Newtonsoft.Json' as a file, but the file does not exist

            Considered '/Users/admin/Downloads/TeamCity/buildAgent/work/b998b8d1d0b0ff61/NESTouch/NESTouch.Android/NESQuestionFramework.Android/NESQuestionFramework.Android/bin/Debug/Newtonsoft.Json.exe' as a file, but the file does not exist

            Considered '/Users/admin/Downloads/TeamCity/buildAgent/work/b998b8d1d0b0ff61/NESTouch/NESTouch.Android/NESQuestionFramework.Android/NESQuestionFramework.Android/bin/Debug/Newtonsoft.Json.dll' as a file, but the file does not exist

Каким будет правильный подход к решению этой проблемы. В настоящее время я заставляю разработчиков заходить на сервер и вручную создавать решение с помощью студии xamarin [которая, как я полагаю, загружает Newtonsoft] и запускать его каждый последующий раз с помощью xbuild. Большое спасибо за ваше время

Раджеш


person Raj    schedule 02.04.2014    source источник
comment
Судя по логам, Newtosoft.dll сложно найти по адресу ../../Components/json.net-4.5.11/lib/android/Newtonsoft.Json.dll, так что уверены, что файл существует по этому пути?   -  person choper    schedule 02.04.2014
comment
У меня почти такая же проблема, обновленная до json.net 6.0.2, и теперь это происходит, когда я пытаюсь собрать все решение. Если я создаю каждый проект отдельно, он работает. Раньше я был на 6.0.1-beta1.   -  person user2320724    schedule 04.04.2014


Ответы (1)


Это немного устарело, но мы используем json.net (newtonsoft) от nuget, что позволяет легко запускать восстановление nuget для решения.

в качестве обходного пути вы можете запустить mdtool из студии xamarin, которая отлично работала (имеет некоторые ограничения)

person Srgrn    schedule 19.10.2015