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