【问题标题】:Can't create library and link to console application无法创建库并链接到控制台应用程序
【发布时间】:2019-03-07 19:03:34
【问题描述】:

我正在使用 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 ../&lt;name&gt;/&lt;name&gt;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 文件的示例。这是必需的吗?如果不是,我该如何解决?

【问题讨论】:

    标签: c# linux .net-core


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 2018-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多