我使用VS Code进行C#和Unity3D以及TypeScript、Angular和Python编程,因此我拥有几乎所有必需的扩展,包括.NET Framework和Core以及Quantum Development Kit (QDK) + Q# Interoperability Tools,以及C#和Python VS Code的扩展。
我根据几个教程设计了以下步骤来创建我的第一个量子Hello:
$ 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.但是,一旦这些都完成了,我就会得到以下的错误:

我做错了什么?我遗漏了什么?
以下是一些附加信息:
$ 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).当我运行dotnet build时,我得到以下信息:
微软(注册商标)建立引擎版本16.7.2+b60ddb6f4为.NET版权(C)微软公司。版权所有。
决定恢复的项目..。所有的项目都是最新的恢复。不可能找到任何兼容的框架版本--框架'Microsoft.NETCore.App',没有找到版本'2.0.0‘。-发现了以下框架: 3.1.22 at C:\Program Files\dotnet\shared\Microsoft.NETCore.App 5.0.13 at C:\Program Files\dotnet\shared\Microsoft.NETCore.App
您可以通过安装指定的框架和/或SDK来解决这个问题。
指定的框架可以在:- C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\build\Microsoft.Quantum.Development.Kit.targets(17,5):C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\build../tools/qsc/qsc.dll MSB3073:命令"dotnet C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\build../tools/qsc/qsc.dll-输入“Operation.qs--引用"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\“"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.Simulation.Core.dll“"C:\Users\Muhy.nuget\packages\microsoft.quantum.development Microsoft.Quantum.Primitives.dll”.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”--输出路径obj\qsharp\src“与代码-2147450730一起退出。C:\Users\Muhy\Dropbox\Q\Q#-programs\Qtest\quantum\quantum.csproj
构建失败。
C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\build\Microsoft.Quantum.Development.Kit.targets(17,5):error MSB3073:命令"dotnet C:\Users\Muhy.nuget\packages\microsoft.quantum.development.kit\0.2.1802.1603-preview\build../tools/qsc/qsc.dll -输入“Operation.qs-引用"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.Quantum.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”--输出路径obj\qsharp\src“与代码-2147450730一起退出。C:\Users\Muhy\Dropbox\Q\Q#-programs\Qtest\quantum\quantum.csproj 0警告1错误
当我还构建这个项目(dotnet build quantum-dotnet.sln和dotnet build ./host/host.csproj)时,我会得到相同的错误。
发布于 2022-02-27 10:24:54
在另一个论坛上的用户的帮助下,问题在于命令:
dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*"已安装的0.2.1802.1603-preview版本,非常老。最新版本是0.22.187631。
这就是诀窍:
dotnet new -i "Microsoft.Quantum.ProjectTemplates"其次是:
dotnet new --update-apply要更新所有项目模板,请执行以下操作。在此之后,重新创建项目修复了所有错误。
现在,我相信以下的一套指令应该适用于每一个初学者:
# 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 runhttps://stackoverflow.com/questions/71100198
复制相似问题