23

我有一个 Xamarin Android 项目,我正在尝试使用 Sdk 和 User Assembly 链接。

如果我将 Android 项目设置为仅 Sdk Assembly Linking,则 APK 会成功创建和部署并且可以正常工作。

但是,当我设置 Sdk 和用户程序集链接时,没有其他更改,在部署时出现以下错误。解决方案构建成功。

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
  • 在 VS 关闭的情况下从命令提示符运行 MsBuild

以及上述的各种组合。

我的自定义 linker.xml包含我的库项目的异常:

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

在这一点上,我似乎已经用尽了所有可用的选项,并且离可行的解决方案还差得远。我们将不胜感激有关解决方案、变通办法或其他调试路径的建议。

我的 Android 选项配置:

安卓选项

版本信息:

  • Visual Studio 版本:15.5.6
  • Xamarin 表单版本:2.5.0.280555
  • Xamarin 版本:26.1.0.1
4

1 回答 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

希望这可以帮助!!

于 2018-03-27T08:24:55.067 回答