我正在使用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文件的示例。这是必需的吗?如果没有,我该如何解决?
答案 0 :(得分:0)
事实证明,我在bin目录层次结构中有一个obj目录,它妨碍了构建。我删除了所有bin和obj目录并重新构建。没有错误。