Активы Nuget PackageReference - PullRequest
       33

Активы Nuget PackageReference

0 голосов
/ 25 октября 2018

У меня есть эти пакеты в проекте:

<PackageReference Include="Microsoft.CodeAnalysis" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="1.1.0" />
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces" Version="2.8.2" />
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="2.8.2" />

Я переместил этот файл .csproj в формат 2017, а затем, когда я строю решение, возникает ошибка:

ошибка CS0104: «Проект» является неоднозначной ссылкой между «Microsoft.CodeAnalysis.Project» и «Some.Namespace.Project»

Конечно, эта ошибка вызвана тем, что один из описанных пакетовПриведенный выше перемещен в общий родительский проект и конфликтует с классом с тем же именем.

Мой вопрос заключается в том, какие активы (IncludeAssets, ExcludeAssets, PrivateAssets) следует установить, с каким значением и в какомpackage?

Пока что файл .csproj выглядит так:

<PackageReference Include="Microsoft.CodeAnalysis" Version="2.8.2">
  <PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="1.1.0">
  <PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="2.8.2">
  <PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="2.8.2">
  <PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="2.8.2">
  <PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="2.8.2">
  <PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces" Version="2.8.2">
  <PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="2.8.2">
  <PrivateAssets>all</PrivateAssets>
</PackageReference>

Но я думаю, что это не самый лучший и точный вариант.

1 Ответ

0 голосов
/ 25 октября 2018

Лучшее, что можно сделать здесь, - это создать совершенно новый пустой проект.Сделайте ссылку на версию 2.8.2, затем сравните то, что находится в файле csproj, с вашим реальным решением.Удалите все ссылки в вашем реальном решении, которых нет в вашем фиктивном файле.Вполне возможно, что пространства имен изменились, но, по крайней мере, после того, как вы получите правильные ссылки, пространства имен не должны быть такими сложными.

...