Соединение Xamarin Android не может получить доступ к файлу

У меня есть проект Xamarin для Android, который я пытаюсь использовать с помощью Sdk и User Assembly.

Если я настрою проект Android только на Sdk Assembly Linking, APK будет создан и развернут успешно и будет работать.

Однако, когда я устанавливаю ссылку Sdk и User Assembly, без каких-либо других изменений, я получаю следующую ошибку только при развертывании. Решение строится успешно.

The "LinkAssemblies" task failed unexpectedly.    
System.IO.IOException: The process cannot access the file '<path-to-project>\AppName\AppName.Android\obj\Release\android\assets\AppName.Core.dll' because it is being used by another process.
    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
    at Mono.Cecil.ModuleDefinition.Write(String fileName, WriterParameters parameters)
    at Mono.Linker.Steps.OutputStep.WriteAssembly(AssemblyDefinition assembly, String directory)
    at Mono.Linker.Steps.OutputStep.OutputAssembly(AssemblyDefinition assembly)
    at Mono.Linker.Steps.OutputStep.ProcessAssembly(AssemblyDefinition assembly)
    at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
    at Mono.Linker.Pipeline.Process(LinkContext context)
    at MonoDroid.Tuner.Linker.Process(LinkerOptions options, LinkContext& context)
    at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
    at Xamarin.Android.Tasks.LinkAssemblies.Execute()
    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

AppName.Core.dll - это еще один проект библиотеки в моем решении, который настроен как NetStandard 2.0.

Я просмотрел многие другие сообщения об ошибках и сообщения на форуме о подобной проблеме, но большинство из них связано с более ранней ошибкой с Visual Studio 15.5.1, которая с тех пор была исправлена.

Несмотря на это, я пробовал практически каждое решение, предлагаемое в этих ссылках, включая:

  • закрытие и повторное открытие Visual Studio
  • удаление /bin и /obj папок
  • открытие Visual Studio в качестве администратора
  • запуск MsBuild из командной строки с закрытым VS

Как и различные комбинации вышеизложенного.

Мой пользовательский linker.xml содержит исключение для моего проекта библиотеки:

<?xml version="1.0" encoding="utf-8" ?>
<linker>    
    ...    
    <assembly fullname="AppName.Core" ></assembly>        
    ...        
</linker>

Поскольку этот момент я, кажется, исчерпал все доступные варианты и не приближаюсь к работоспособному решению. Предложения по решениям, обходным решениям или другим путям отладки, которые следует соблюдать, будут оценены наиболее высоко.

Мои настройки Android Android:

Android Options

Информация о версии:

  • Версия Visual Studio: 15.5.6
  • Версия Xamarin: 2.5.0.280555
  • Версия Xamarin: 26.1.0.1

Ответ 1

См. Эту ссылку:

https://forums.xamarin.com/discussion/32976/updating-xamarin-broke-the-build-process-the-process-cannot-access-the-file-appname-dll-mdb

Существует два решения:

  1. Закрыть Visual Studio
  2. удаление всех файлов в папке bin\Debug
  3. удалить файл.suo
  4. открыть Visual Studio в режиме администратора

Если у вас есть Xamarin Studio, попробуйте это:

  1. Откройте решение в XamarinStudio и разверните его на Android-телефоне
  2. Закрыть XamarinStudio
  3. Откройте решение в VisualStudio и разверните его на Android Phone

Надеюсь это поможет!!