Utilizo VS Code para C# , Unity3D , TypeScript , Angular y Python , por lo que tengo casi todas las extensiones necesarias, incluidos .NET Framework y Core , así como Quantum Development Kit (QDK) además de Q# Interoperability Tools y también Extensiones de C# y Python para VS Code .
He ideado los siguientes pasos para crear mi primer Hello World cuántico basado en algunos tutoriales:
$ dotnet --version $ dotnet --list-sdks $ dotnet --list-runtimes $ dotnet new globaljson # Create a "global.json" file in your current directory folder. $ dotnet new globaljson --sdk-version 3.1.416 --force # Change the current SDK version of your project. $ dotnet new -i Microsoft.DotNet.Web.Spa.ProjectTemplates $ dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*" # First, create a Q# application and a .NET host, and then make a call to Q# from the host. # Create a project for your Q# library and for the .NET host that will call # into the operations and functions defined in your Q# library. $ dotnet new classlib -lang Q# -o quantum # Create a new Q# class-library project. $ dotnet new console -lang C# -o host # Create a new C# console project. $ cd host # Navigate into the C# host directory. $ dotnet add reference ../quantum/quantum.csproj # Add your Q# class-library project as a reference to your C# console project. $ cd .. # Exit the C# host directory. $ dotnet new sln -n quantum-dotnet # Create a new solution for both projects. $ dotnet sln quantum-dotnet.sln add ./quantum/quantum.csproj # Add the Q# class-library project to the solution. $ dotnet sln quantum-dotnet.sln add ./host/host.csproj # Add the C# host project to the solution. # The -o or --output command specifies the location to place the generated output.Sin embargo , tan pronto como todo esto está hecho, aparece la siguiente carga de errores:
¿Qué estoy haciendo mal? ¿Qué me estoy perdiendo?
Aquí hay información adicional:
$ dotnet --list-sdks 3.1.416 [C:\Program Files\dotnet\sdk] 5.0.404 [C:\Program Files\dotnet\sdk] $ dotnet --version 3.1.416 $ dotnet restore Determining projects to restore... Restored C:\Users\Muhy\Dropbox\Q\Q#-programs\Qtest\quantum\quantum.csproj (in 484 ms). Restored C:\Users\Muhy\Dropbox\Q\Q#-programs\Qtest\host\host.csproj (in 782 ms). Cuando ejecuto dotnet build , obtengo lo siguiente:
Microsoft (R) Build Engine versión 16.7.2+b60ddb6f4 para .NET Copyright (C) Microsoft Corporation. Todos los derechos reservados.
Determinando proyectos para restaurar... Todos los proyectos están actualizados para restaurar. No fue posible encontrar ninguna versión de marco compatible. No se encontró el marco 'Microsoft.NETCore.App', versión '2.0.0'. - Se encontraron los siguientes marcos: 3.1.22 en [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 5.0.13 en [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Puede resolver el problema instalando el marco y/o SDK especificado.
El marco especificado se puede encontrar en: - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=2.0.0&arch=x64&rid=win10-x64 C:\Users\Muhy.nuget\packages \microsoft.quantum.development.kit\0.2.1802.1603-preview\build\Microsoft.Quantum.Development.Kit.targets(17,5): error MSB3073: El comando "dotnet C:\Users\Muhy.nuget\packages\ microsoft.quantum.development.kit\0.2.1802.1603-preview\build../tools/qsc/qsc.dll --input "Operation.qs" --references "C:\Users\Muhy.nuget\packages\microsoft. quantum.canon\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quantum.Canon.dll" "C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\ lib\netstandard2.0\Microsoft.Quantum.MetaData.dll" "C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quantum. Primitives.dll" "C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quan tum.Simulation.Common.dll" "C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quantum.Simulation.Core.dll" "C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quantum.Simulation.QCTraceSimulatorRuntime.dll" "C:\Users\Muhy. nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quantum.Simulation.Simulators.dll" --outputpath obj\qsharp\src" salió con el código -2147450730. [C:\Usuarios\Muhy\Dropbox\Q\Q#-programs\Qtest\quantum\quantum.csproj]
Construcción fallida.
C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\build\Microsoft.Quantum.Development.Kit.targets(17,5): error MSB3073: El comando "dotnet C :\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\build../tools/qsc/qsc.dll --input "Operation.qs" --references "C:\ Usuarios\Muhy.nuget\packages\microsoft.quantum.canon\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quantum.Canon.dll" "C:\Users\Muhy.nuget\packages\microsoft.quantum. desarrollo.kit\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quantum.MetaData.dll" "C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\ lib\netstandard2.0\Microsoft.Quantum.Primitives.dll" "C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quantum. Simulation.Common.dll" "C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quantum.Simulatio n.Core.dll" "C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quantum.Simulation.QCTraceSimulatorRuntime.dll" "C :\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\lib\netstandard2.0\Microsoft.Quantum.Simulation.Simulators.dll" --outputpath obj\qsharp\src" salió con código -2147450730. [C:\Users\Muhy\Dropbox\Q\Q#-programs\Qtest\quantum\quantum.csproj] 0 Advertencia(s) 1 Error(es)
Cuando también construyo el proyecto ( dotnet build quantum-dotnet.sln y dotnet build ./host/host.csproj ) obtengo los mismos errores.
Con la ayuda de un usuario en otro foro, resulta que el problema era el comando:
dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*" que instaló la versión 0.2.1802.1603-preview que es bastante antigua. La última versión es 0.22.187631 .
Esto hizo el truco:
dotnet new -i "Microsoft.Quantum.ProjectTemplates"Seguido por:
dotnet new --update-applypara actualizar todas las plantillas de proyecto. Después de esto, volver a crear los proyectos solucionó todos los errores.
Ahora, creo que el siguiente conjunto de instrucciones debería funcionar para todos los principiantes:
# Install the .NET Framework and Core as well as the Quantum Development Kit (QDK) # plus the Q# Interoperability Tools and also C# and Python extensions for VS Code. $ dotnet --version $ dotnet --list-sdks $ dotnet --list-runtimes $ dotnet new globaljson # Create a "global.json" file in your current directory folder. $ dotnet new globaljson --sdk-version 3.1.416 --force # Change the current SDK version of your project to .NET 3.1.416 $ dotnet new -i Microsoft.DotNet.Web.Spa.ProjectTemplates $ dotnet new -i "Microsoft.Quantum.ProjectTemplates" $ dotnet new --update-apply # First, create a Q# application and a .NET host, and then make a call to Q# from the host. # Create a project for your Q# library and for the .NET host that will call # into the operations and functions defined in your Q# library. $ dotnet new classlib -lang Q# -o quantum # Create a new Q# class-library project. $ dotnet new console -lang C# -o host # Create a new C# console project. # The -o or --output command specifies the location to place the generated output. $ cd host # Navigate into the C# host directory. $ dotnet add reference ../quantum/quantum.csproj # Add your Q# class-library project as a reference to your C# console project. $ cd .. # Exit the C# host directory. $ dotnet new sln -n quantum-dotnet # Create a new solution for both projects. $ dotnet sln quantum-dotnet.sln add ./quantum/quantum.csproj # Add the Q# class-library project to the solution. $ dotnet sln quantum-dotnet.sln add ./host/host.csproj # Add the C# host project to the solution. $ cd host $ dotnet build $ dotnet run