«Несколько сборок с одинаковыми идентификационными данными были импортированы» в VS2015 с помощью csproj, созданного Unity - PullRequest
0 голосов
/ 17 мая 2018

Я запустил новый проект .NET 4.6 в Unity 2018.1, и когда я пытаюсь построить его в Visual Studio 2015, я получаю «CS1703: импортировано несколько сборок с одинаковым идентификатором» для нагрузок и нагрузок .NETсборки, все из которых являются частью BCL.Единственный код в проекте - это пустой класс.В консоли Unity нет ошибок.

Простые шаги воспроизведения (см. Информацию о версии в конце):

  1. Создание нового проекта Unity
  2. Настройка сценариевУровень выполнения до .NET 4.x в настройках плеера
  3. Добавить новый C # скрипт
  4. Открыть проект в VS
  5. Попробуйте его построить

Если бы это был обычный проект, я бы просто удалил дублированные ссылки, но этот .csproj постоянно обновляется Unity.

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

  • Unity: 2018.1.0f2
  • Visual Studio 2015: обновление 3 (14.0.25431.01)
  • Инструменты Visual Studio для Unity: 3.7.0.1

1 Ответ

0 голосов
/ 30 мая 2018

Это похоже на известную проблему в Unity 2018 с тем, как он генерирует файлы проекта Visual Studio.Я только что заметил ту же проблему с Unity 2018.1.2f1 и Visual Studio 2015 Update 3 (14.0.25431.01).

Кто-то опубликовал сообщение о такой же проблеме на форуме Unity .Себастьен Лебретон из Microsoft ответил обходным путем, пока Unity не исправит проблему.Добавьте приведенный ниже скрипт в папку с именем «Editor» в вашем проекте.

using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Linq;

using UnityEditor;

#if ENABLE_VSTU

using SyntaxTree.VisualStudio.Unity.Bridge;

[InitializeOnLoad]
public class ProjectFileHook
{
   // necessary for XLinq to save the xml project file in utf8
   class Utf8StringWriter : StringWriter
   {
       public override Encoding Encoding
       {
           get { return Encoding.UTF8; }
       }
   }

   static ProjectFileHook()
   {
       ProjectFilesGenerator.ProjectFileGeneration += (string name, string content) =>
       {
           // parse the document and make some changes
           var document = XDocument.Parse(content);
           var ns = document.Root.Name.Namespace;

           document.Root
               .Descendants()
               .First(x => x.Name.LocalName == "PropertyGroup")
               .Add(new XElement(ns + "ImplicitlyExpandNETStandardFacades", "false"),
                    new XElement(ns + "ImplicitlyExpandDesignTimeFacades", "false"));

           // save the changes using the Utf8StringWriter
           var str = new Utf8StringWriter();
           document.Save(str);

           return str.ToString();
       };
   }
}

#endif
...