Quantum Development Kit использует .NET Core SDK для поиска и связывания различных библиотек Q #, в частности, через файлы проекта C # (*.csproj
).
В файле проекта C # вы можете объявить зависимость от другой библиотеки, используя ссылку на пакет или ссылку на проект .
Ссылки на пакеты (например, <PackageReference Include="Microsoft.Quantum.Standard" Version="0.7.1905.3109" />
) дают указание .NET Core SDK загрузить пакет с NuGet.org с указанным именем и версией, а затем связать все библиотеки DLL, содержащиеся в проекте.
Напротив, ссылки на проекты (например: <ProjectReference Include="..\..\..\Standard\src\Standard.csproj" />
) инструктируют .NET Core SDK сначала создать ссылочный проект, а затем связать его с DLL.
Для использования библиотек, созданных из https://github.com/microsoft/QuantumLibraries,, мы обычно рекомендуем использовать ссылки на пакеты, поскольку ссылками на проекты в разных репозиториях может быть сложно управлять - необходимо, чтобы путь к файлу проекта был предсказуемым, что может быть трудно сделать в этом случае.
Вот почему мы взяли стратегию с репозиторием QuantumLibraries, чтобы ссылки в репо были ссылками на проекты, а ссылки на другие части Quantum Development Kit - это ссылки на пакеты.
Например, среда выполнения библиотеки химии использует ссылку на проект для ссылки на версию стандартных библиотек в том же репо, но образцы в https://github.com/microsoft/Quantum используют ссылки на пакеты :
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.1.1" />
<PackageReference Include="Microsoft.Quantum.Standard" Version="0.7.1905.3109" />
<PackageReference Include="Microsoft.Quantum.Chemistry" Version="0.7.1905.3109" />
<PackageReference Include="Microsoft.Quantum.Development.Kit" Version="0.7.1905.3109" />
<PackageReference Include="Microsoft.Quantum.Research" Version="0.7.1905.3109" />
</ItemGroup>
<ItemGroup>
<Compile Update="Program.cs">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Compile>
</ItemGroup>
</Project>
Тем не менее, если вы проводите локальное тестирование вклада, который вы хотели бы внести в Quantum Development Kit, ссылки на стандарт Q # и библиотеки химии с использованием ссылок на проекты могут иногда оказаться полезными, пока новый пакет, включающий ваш вклад, не будет построен и опубликован на NuGet.org.