Visual Studio dotnet core копирует и вставляет ссылки

Я знаю о ссылках копирования / вставки в Visual Studio с 2010/2012. Было ли это обновлено для работы с Core 2?

Вот SO Вопрос, спрашивающий о ссылках старого стиля (до Core и до перезагрузки формата csproj): возможно ли копировать / вставлять ссылки из одного проекта в другой в Visual Studio?

2 ответа

Может быть, теперь, когда dotnet add package доступно, нам не нужно копировать / вставлять ссылки в VS?

В пошаговом руководстве "Добавление входа в социальную сеть Google" для ASP.NET Core 2.0 предлагается использовать интерфейс командной строки dotnet для добавления ссылки на пакет:

  • Чтобы установить с помощью.NET Core CLI, выполните в каталоге проекта следующее:

    dotnet add package Microsoft.AspNetCore.Authentication.Google

источник: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/google-logins?tabs=aspnetcore2x

Написание этого ответа на мой собственный вопрос так, чтобы у людей "просто используйте CLI" было что-то, чтобы поддержать.

Если вы говорите о ссылках на пакеты NuGet, не пытайтесь скопировать разрешенные ссылки в dll-файлы вручную (они генерируются из obj\project.assets.json файл во время разработки после загрузки проекта).

В новой модели проекта на основе SDK и в способе ссылки PackageReference на пакеты NuGet (также доступны для "классических" проектов) ссылки NuGet автоматически переходят между ссылками на пакеты. Поэтому, когда ваше приложение ссылается на библиотеку, которая использует пакет NuGet, вам больше не нужно устанавливать пакет NuGet как в библиотеке, так и в приложении (и, возможно, тестировать проекты).

Эта проблема остается только для "классических" ссылок. Однако, если вам нужно импортировать их во все проекты (например, вы получили несколько DLL-файлов от сторонних производителей), вы можете создать Directory.Build.targets в папке решения, чтобы добавить их во все проекты в вашем решении (технически этот файл автоматически импортируется во все проекты в иерархии каталогов):

<Project>
  <ItemGroup>
    <Reference Include="AssemblyName">
      <HintPath>shared-libs\AssemblyName.dll</HintPath>
    </Reference>
  </ItemGroup>
</Project>

(вы можете изменить ссылку, если вам нужна функция "конкретной версии" или ссылки на строгое имя, как описано в /questions/11933912/ponimanie-ssyilki-na-sborku-csproj/11933924#11933924)

Другие вопросы по тегам