在 Visual Studio 2017 中使用 .NET Standard 库
如果已按照在 Visual Studio 2017 中使用 C# 和 .NET Core SDK 生成 .NET Standard 库或在 Visual Studio 2017 中使用 Visual Basic .NET Core 生成 Standard 库以及在 Visual Studio 2017 中使用 .NET Core 测试 .NET Standard 库中的步骤创建并测试 .NET Standard 类库,并且已生成库的发布版本,下一步就是使其可供调用方使用。 可以通过以下两种方式执行此操作:
-
如果库将供一个解决方案使用(例如,如果它是一个大型应用程序中的组件),可以将其以项目的形式添加到解决方案中。
-
如果类库将供更多调用方使用,可以 NuGet 包的形式分发它。
将类库以项目的形式添加到解决方案中
就像将单元测试和类库添加到同一解决方案中一样,可以将应用程序添加到同一解决方案中。 例如,可在控制台应用程序中使用类库,此应用程序将提示用户输入字符串,并报告第一个字符是否为大写:
-
打开在 Visual Studio 2017 中使用 C# 和 .NET Core SDK 生成 .NET Standard 库主题中创建的
ClassLibraryProjects
解决方案。 在“解决方案资源管理器”中,右键单击“ClassLibraryProjects”解决方案,然后从上下文菜单依次选择“添加” > “新项目”。 -
在“添加新项目”对话框中,展开“Visual C#”节点,再依次选择“.NET Core”节点和“控制台应用程序(.NET Core)”项目模板。 在“名称”文本框中,键入“ShowCase”,然后选择“确定”按钮。
-
在“解决方案资源管理器”中,右键单击“ShowCase”项目,在上下文菜单中选择“设为启动项目”。
-
项目一开始无法访问类库。 若要允许项目调用类库中的方法,可以创建对该类库的引用。在“解决方案资源管理器”中,右键单击
ShowCase
项目的“依赖项”节点,并选择“添加引用”。 -
在“引用管理器”对话框中,选择类库项目“StringLibrary”,然后选择“确定”按钮。
-
在“Program.cs”文件的代码窗口中,将所有代码替换为以下代码:
C#复制
using System; using UtilityLibraries; class Program { static void Main(string[] args) { int row = 0; do { if (row == 0 || row >= 25) ResetConsole(); string input = Console.ReadLine(); if (String.IsNullOrEmpty(input)) break; Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " + $"{(input.StartsWithUpper() ? "Yes" : "No")}\n"); row += 3; } while (true); return; // Declare a ResetConsole local method void ResetConsole() { if (row > 0) { Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } Console.Clear(); Console.WriteLine("\nPress <Enter> only to exit; otherwise, enter a string and press <Enter>:\n"); row = 3; } } }
该代码使用
row
变量来维护写入到控制台窗口的数据行数计数。 如果大于或等于 25,该代码将清除控制台窗口,并向用户显示一条消息。该程序会提示用户输入字符串。 它会指明字符串是否以大写字符开头。 如果用户没有输入字符串就按 Enter 键,应用程序会终止且控制台窗口会关闭。
-
必要时,将工具栏更改为编译
ShowCase
项目的“调试”版本。 选择“ShowCase”按钮上的绿色箭头,编译并运行程序。
可以按照使用 Visual Studio 2017 调试 C# 或Visual Basic .NET Core Hello World 应用程序和使用 Visual Studio 2017 发布 .NET Core Hello World 应用程序中的步骤操作,调试并发布使用此库的应用程序。
以 NuGet 包的形式分发类库
可采用 NuGet 包的形式发布类库,让类库可供更多调用方使用。 Visual Studio 不支持创建 NuGet 包。 若要创建 NuGet 包,请使用 dotnet
命令行实用工具:
-
打开控制台窗口。 例如,在 Windows 任务栏的“在这里输入你要搜索的内容”文本框中,输入
Command Prompt
(或缩写cmd
),然后选择“命令提示符”桌面应用或按 Enter(如果已在搜索结果中选中控制台窗口),打开控制台窗口。 -
转到类库的项目目录。 除非重新配置了典型文件位置,否则文件通常位于 Documents\Visual Studio 2017\Projects\ClassLibraryProjects\StringLibrary 目录中。 此目录包含源代码和项目文件 StringLibrary.csproj。
-
发出命令
dotnet pack --no-build
。 此时,dotnet
实用工具会生成一个扩展名为 .nupkg 的包。提示
如果路径中没有包含 dotnet.exe 的目录,可以通过在控制台窗口中输入
where dotnet.exe
来找到它的位置。
若要详细了解如何创建 NuGet 包,请参阅如何使用跨平台工具创建 NuGet 包。