由于内部错误,部署失败:已添加具有相同密钥的项目

时间:2014-07-13 17:06:59

标签: visual-studio xamarin xamarin.android

我正在使用VS2013,Xamarin.Android 4.12.4.20。

构建成功。

每当我尝试在调试模式或包中部署时,我都会从标题中收到错误。 它开始发生在今天它之前工作正常。

我重新启动了VS,设备,PC - 没有人帮忙。

堆栈追踪:

Xamarin.AndroidTools.AndroidDeploymentException: InternalError ---> System.ArgumentException: An item with the same key has already been added.
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at Mono.AndroidTools.Adb.AdbSyncDirectory.Add(AdbSyncItem entry)
   at Xamarin.AndroidTools.AndroidDeploySession.InstallAssemblies(String destinationPath, CancellationToken token)
   at Xamarin.AndroidTools.AndroidDeploySession.FastDev()
   at Xamarin.AndroidTools.AndroidDeploySession.Run(CancellationToken token)
   at Xamarin.AndroidTools.AndroidDeploySession.RunLogged(CancellationToken token)
   --- End of inner exception stack trace ---
   at Xamarin.AndroidTools.AndroidDeploySession.RunLogged(CancellationToken token)
   at Xamarin.AndroidTools.AndroidDeploySession.Start(CancellationToken token)

构建输出:

3>Build succeeded.
3>Waiting for device..
3>Detecting installed packages
3>Detecting installed packages...
3>
3>Removing previous version of application
3>Removing previous version of application...
3>
3>Installing application on device
3>Copying application to device...
3>
3>Getting installation path...

1 个答案:

答案 0 :(得分:2)

我已经弄明白了。确保您没有引用相同dll的不同版本!!

让我描述一下我的设置,这将有助于解释为什么发生异常。

我有两个项目

  • 域 - 包含所有平台之间共享代码的库
  • Android - 特定于Android的代码

两者都有对同一个库的nuget引用。在某些时候,android(仅在此项目中)nuget引用已更新,导致应用程序所需的相同库的两个版本(Domain项目仍引用旧的nuget)。

当我尝试打包解决方案时,我会收到警告:

Consider app.config remapping of assembly "{Library}" from Version "5.6.0.0" [] to Version "5.6.1.0" [{Path}] to solve conflict and get rid of warning.

一旦我更新了域名,一切都有效。