我有一个.NET Standard 2.0类库:
它存在于自己的解决方案中,但是我现在将其添加到其他解决方案中,以便可以与.NET Core 2.1 Console测试运行程序一起使用:
但是,一旦执行此操作,我就会收到错误消息。如果我删除控制台应用程序,则所有内容都会正确编译。
那么我在这里想念什么?为什么.NET Core 2.1控制台应用程序找不到我的.NET Standard 2.0类库?
答案 0 :(得分:5)
我只是想复制您所做的,并且对我有用!
只有一个班级
public class School
{
public string Name => "Mango Hill";
}
还有我的.net core 2.1项目
您可以看到输出。 因此,我建议您检查公共项目以查看其是否引用了任何完整的库,然后尝试隔离这些引用。
答案 1 :(得分:3)
这里的问题是,无论出于什么原因,如果满足以下条件,.NET Core控制台应用程序都会失败,并显示我收到的错误:
然后在路径中添加一个新的标准类库项目Standard.Project.cproj:
a) D:\Rubbish\slnStandard\Standard.Project <== Will Compile in slnStandard
b) D:\Rubbish\slnStandard\SubFolder\Standard.Project <== Will Compile in slnStandard
创建第二个解决方案slnSecond并添加一个名为MySolutionFolder的解决方案文件夹。从上述1(两个版本)添加Standard.Project.cproj。 slnSecond将编译
向slnSecond添加一个MSTest .NET Core控制台应用程序。然后,使用添加在2中的内容进行“添加参考”>项目。
如果参考为1b),则不会编译。因此,基本上,您需要保持文件夹结构平坦。希望这个问题可以解决。
答案 2 :(得分:2)
只需尝试使用Dotnet CLI 2.1版本运行“ build”或“ restore”命令。在命令窗口中
c:\ path> dotnet恢复[.net core 2.1控制台] .csproj
如果使用Visual Studio切换TargetFramework,可能需要执行一次。 从.net core 2.0到2.1或相反
如果可以从dotnet CLI命令“ build”构建控制台项目。并且您仅在Visual Studio中收到此错误。
请尝试使用dotnet“ sln”和“ add”命令创建解决方案以引用项目。
答案 3 :(得分:0)
这是我从git中使用空格“%20”克隆路径时发生的。删除空格后,它在Visual Studio 2017中构建时没有问题。有趣的是,我在JetBrains Ryder中遇到了相同的问题,但是在命令行中却没有( dotnet build )。