Microsoft Visual Studio Professional 2019
Version 16.0.0
VisualStudio.16.Release/16.0.0+28729.10
我添加了一个.NET Core 2.2
MSTest
项目,并添加了依赖项:
我编译并收到此错误:
CS0234 The type or namespace name 'VisualStudio' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) ...\packages\microsoft.net.test.sdk\16.2.0\build\netcoreapp1.0\Microsoft.NET.Test.Sdk.Program.cs
Microsoft.NET.Test.Sdk.Program.cs
// <auto-generated> This file has been auto generated. </auto-generated>
using System;
[Microsoft.VisualStudio.TestPlatform.TestSDKAutoGeneratedCode]
class AutoGeneratedProgram {static void Main(string[] args){}}
观察数:
.NET Core 2.2
,但它使用的软件包来自
netcoreapp1.0
文件夹Microsoft.NET.Test.Sdk v16.0.1
,但在构建时尚未解决
参考答案 0 :(得分:1)
类型或名称空间名称'VisualStudio'在 命名空间“ Microsoft”(您是否缺少程序集引用?) ... \ packages \ microsoft.net.test.sdk \ 16.2.0 \ build \ netcoreapp1.0 \ Microsoft.NET.Test.Sdk.Program.cs
如果我们使用Microsoft.NET.Test.Sdk
包,则在编译和构建项目时,Microsoft.NET.Test.Sdk.Program.cs
还将在构建过程中由csc.exe
进行编译。
因此错误消息表明无法正确识别Microsoft.VisualStudio.TestPlatform.TestSDKAutoGeneratedCode
属性,因为对Microsoft.TestPlatform.ObjectModel.dll
的引用存在问题。
注意:
1。Microsoft.VisualStudio.TestPlatform.TestSDKAutoGeneratedCode
来自程序集Microsoft.TestPlatform.ObjectModel.dll
。
2。Microsoft.NET.Test.Sdk
软件包取决于Microsoft.TestPlatform.TestHost
软件包,而Microsoft.TestPlatform.TestHost
软件包取决于Microsoft.TestPlatform.ObjectModel
软件包。
如果成功安装了这些软件包,则编译和构建应该可以进行。因此,实际上我认为您已安装的软件包中有问题。
您可以尝试一些简单的建议:
1。转到Tools=>Nuget Package Manager=>Package Manager settings
以确保启用了Package Restore
的两个选项。然后删除bin,obj文件夹并运行重建。
2。如果#1无效,请在VS IDE中尝试clean the nuget cache by UI,然后再次删除bin,obj文件夹,然后运行重建。
3。请将VS IDE更新到最新版本,因为16.0.0太旧,并且最新版本已修复了一些问题。
项目是.NET Core 2.2,但它使用的是netcoreapp1.0中的软件包 文件夹
如果您在路径...\packages\microsoft.net.test.sdk\16.2.0\build
中打开软件包,则可以发现该软件包只有三个版本的程序集:net40,netcoreapp1.0和uap10.0。由于您的项目是.net core 2.2,因此它将引用netcoreapp1.0文件夹中的程序集。这是预期的行为。