无法创建库并链接到控制台应用程序

时间:2019-03-07 19:03:34

标签: c# linux .net-core

我正在使用vs代码在Linux机器上编写一些c#代码。我创建了一个初始控制台应用程序,现在我想将其一部分移到库中。

因此,我创建了一个多文件夹工作区,并向其中添加了原始目录和库的新目录。

cd到lib目录并运行dotnet new classlib命令 这创建了一个标准库:

<Project Sdk="Microsoft.NET.Sdk">    
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>    
</Project>

F5仍然可以构建原始文件,并且我可以cd到lib目录,并且可以正确地构建它。

现在,我将所需的文件移至库中,并且(令人惊讶地)上述构建仍然有效。然后,我更改库中的名称空间,并从控制台应用程序向库添加引用

dotnet add reference ../<name>/<name>csproj

现在无论我建哪一个,都会出现以下错误:

 Restore completed in 24.06 ms for <project name>.
/usr/share/dotnet/sdk/2.1.302/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(198,5): error : Assets file '<path to obj>project.assets.json' not found. Run a NuGet package restore to generate this file. [<path to project>.csproj]

Build FAILED.

/usr/share/dotnet/sdk/2.1.302/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(198,5): error : Assets file '<path to lib>/obj/project.assets.json' not found. Run a NuGet package restore to generate this file. [<path to project>.csproj]
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.65

我在两个目录中都运行过dotnet restore,但是仍然出现错误。不知道我在这里出错了,并且我已经看到一些创建sln文件的示例。这是必需的吗?如果没有,我该如何解决?

1 个答案:

答案 0 :(得分:0)

事实证明,我在bin目录层次结构中有一个obj目录,它妨碍了构建。我删除了所有bin和obj目录并重新构建。没有错误。