我对如何在Visual Studio之外构建项目(使用dotnet.exe命令行)有一些基本了解。有问题的项目是.NET Framework 4.7.2控制台应用程序,不能选择将其转换为.NET Core。
我创建了一个非常简单的控制台应用程序,该应用程序具有一个包引用,该包引用了我通过Nuget提取的第三方库。 Visual Studio知道,当还原这些软件包时(通过将它们加载到/ packages子目录中来完成),在构建时应在那里寻找参考。但是,dotnet.exe没有意识到这一点,因为生成失败并出现参考错误。而且我看不到可以告诉dotnet.exe在某个位置(/程序包)查找依赖项的选项。
我相信我的问题更多是对如何通过这些命令行工具执行所有操作以及如何安排事物的基本了解,因此我不确定我的实际问题是什么。
.NET FW控制台应用程序中整个“ Program.cs”:
using JetBrains.Annotations;
namespace DotnetRestoreThisJawn
{
class Program
{
static void Main([NotNull] string[] args)
{
}
}
}
以及我的.csproj中的包引用:
<ItemGroup>
<PackageReference Include="JetBrains.Annotations">
<Version>2018.3.0</Version>
</PackageReference>
</ItemGroup>
这是我正在运行的nuget restore命令,它在解决方案目录级别运行,然后创建一个/ packages目录并按预期方式还原该软件包。然后,packages目录是控制台项目目录的兄弟目录。
dotnet restore --no-cache -f --force-evaluate --interactive --packages packages
然后是构建命令:
dotnet build --force
这将导致:
Program.cs(2,7): error CS0246: The type or namespace name 'JetBrains' could not be found...
因此,错误显然可以理解,但是我不确定如何使dotnet.exe知道在哪里可以找到依赖项,或者我应该如何重组事物以便将依赖项还原到正确的位置。
答案 0 :(得分:0)
对于.NET 4.7.2,dotnet CLI命令“ dotnet build”不会还原NuGet软件包。
您必须先使用命令dotnet restore。
过去,在某些情况下,它对我不起作用。
我使用NuGet可执行文件(nuget.exe)的还原命令解决了问题。