연습: c + +/WinRT 구성 요소에서 .NET 5 프로젝션을 생성 하 고 NuGet 배포Walkthrough: Generate a .NET 5 projection from a C++/WinRT component and distribute the NuGet

이 연습에서는 c #/winrt 를 사용 하 여 c + +/winrt 구성 요소에 대 한 .net 5 프로젝션을 생성 하 고, 연결 된 NuGet 패키지를 만들고, .Net 5 c # 콘솔 응용 프로그램에서 NuGet 패키지를 참조 하는 방법을 보여 줍니다.This walkthrough shows how to use C#/WinRT to generate a .NET 5 projection for a C++/WinRT component, create the associated NuGet package, and reference the NuGet package from a .NET 5 C# console application.

여기에서이 연습에 대 한 전체 샘플을 GitHub에서 다운로드할 수 있습니다.You can download the full sample for this walkthrough from GitHub here.

참고

이 연습은 c #/Winrt (RC2)의 최신 미리 보기를 위해 작성 되었습니다.This walkthrough is written for the latest preview of C#/WinRT (RC2). 향후 1.0 릴리스가 개발자 환경에 대 한 추가 업데이트 및 개선 사항을 제공 하는 것으로 간주 됩니다.We expect the upcoming 1.0 release to have further updates and improvements to the developer experience.

필수 구성 요소Prerequisites

이 연습 및 해당 샘플에는 다음과 같은 도구 및 구성 요소가 필요 합니다.This walkthrough and the corresponding sample requires the following tools and components:

  • 유니버설 Windows 플랫폼 개발 워크 로드가 설치 된 Visual Studio 16.8 Preview 3 이상Visual Studio 16.8 Preview 3 (or later) with the Universal Windows Platform development workload installed. 유니버설 Windows 플랫폼 개발에 대 한 설치 세부 정보에서 > Universal Windows Platform development c + + (v14x) 유니버설 Windows 플랫폼 도구 옵션을 확인 합니다.In Installation Details > Universal Windows Platform development, check the C++ (v14x) Universal Windows Platform tools option.
  • .Net 5.0 RC2 SDK..NET 5.0 RC2 SDK.
  • C + +/winrt 프로젝트 템플릿에 대 한 c + +/WINRT VSIX 확장 .C++/WinRT VSIX extension for C++/WinRT project templates.

간단한 c + +/WinRT 런타임 구성 요소 만들기Create a simple C++/WinRT Runtime component

이 연습을 수행 하려면 먼저 .NET 5 프로젝션을 만들 c + +/WinRT 구성 요소가 있어야 합니다.To follow this walkthrough, you must first have a C++/WinRT component for which to create a .NET 5 projection. 이 연습 에서는 GitHub의관련 샘플에서 SimpleMathComponent 프로젝트를 사용 합니다.This walkthrough uses the SimpleMathComponent project in the related sample from GitHub here. 이는 c + +/WINRT VSIX 확장을 사용 하 여 만든 Windows 런타임 구성 요소 (c + +/winrt) 프로젝트입니다.This is a Windows Runtime Component (C++/WinRT) project that was created by using the C++/WinRT VSIX extension. 개발 컴퓨터에 프로젝트를 복사한 후 Visual Studio 2019 Preview에서 솔루션을 엽니다.After you copy the project to your development computer, open the solution in Visual Studio 2019 Preview.

이 프로젝트의 코드는 아래 헤더 파일에 표시 된 기본 수학 연산에 대 한 기능을 제공 합니다.The code in this project provides the functionality for basic math operations shown in the header file below.

// SimpleMath.h
...
namespace winrt::SimpleMathComponent::implementation
{
    struct SimpleMath: SimpleMathT<SimpleMath>
    {
        SimpleMath() = default;
        double add(double firstNumber, double secondNumber);
        double subtract(double firstNumber, double secondNumber);
        double multiply(double firstNumber, double secondNumber);
        double divide(double firstNumber, double secondNumber);
    };
}

C + +/WinRT 구성 요소를 만들고 winmd 파일을 생성 하는 방법에 대 한 자세한 내용은 c + +/WinRT를 사용 하는 Windows 런타임 구성 요소를 참조 하세요.For more detailed steps about creating a C++/WinRT component and generating a .winmd file, see Windows Runtime components with C++/WinRT.

참고

구성 요소에서 IInspectable:: GetRuntimeClassName 를 구현 하는 경우 유효한 WinRT 클래스 이름을 반환 해야 합니다.If you are implementing IInspectable::GetRuntimeClassName in your component, it must return a valid WinRT class name. C #/Winrt는 interop에 클래스 이름 문자열을 사용 하므로 잘못 된 런타임 클래스 이름으로 인해 InvalidCastException이 발생 합니다.Because C#/WinRT uses the class name string for interop, an incorrect runtime class name will raise an InvalidCastException.

구성 요소 솔루션에 프로젝션 프로젝트 추가Add a projection project to the component solution

리포지토리에서 샘플을 복제 한 경우 먼저 SimpleMathProjection 프로젝트를 삭제 하 여 연습 단계별 지침을 따르세요.If you have cloned the sample from the repo, first delete the SimpleMathProjection project to follow the walkthrough step by step.

  1. 클래스 라이브러리 (.Net Core) 프로젝트를 솔루션에 추가 합니다.Add a new Class Library (.NET Core) project to your solution.

    1. 솔루션 탐색기에서 솔루션 노드를 마우스 오른쪽 단추로 클릭 하 Add고 -> 새 프로젝트추가를 클릭 합니다.In Solution Explorer, right click your solution node and click Add -> New Project.
    2. 새 프로젝트 추가 대화 상자에서 클래스 라이브러리 (.net Core) 프로젝트 템플릿을 검색 합니다.In the Add New Project dialog box, search for the Class Library (.NET Core) project template. 템플릿을 선택 하 고 다음을 클릭 합니다.Select the template and click Next.
    3. 새 프로젝트의 이름을 SimpleMathProjection 하 고 만들기를 클릭 합니다.Name the new project SimpleMathProjection and click Create.
  2. 프로젝트에서 빈 Class1.cs 파일을 삭제 합니다.Delete the empty Class1.cs file from the project.

  3. C #/Winrt NuGet 패키지를 설치 합니다.Install the C#/WinRT NuGet package.

    1. 솔루션 탐색기에서 SimpleMathProjection 프로젝트를 마우스 오른쪽 단추로 클릭 하 고 NuGet 패키지 관리를 선택 합니다.In Solution Explorer, right click your SimpleMathProjection project and select Manage NuGet Packages.
    2. Microsoft. CsWinRT NuGet 패키지를 검색 하 고 최신 버전을 설치 합니다.Search for the Microsoft.Windows.CsWinRT NuGet package and install the latest version.
  4. SimpleMathComponent 프로젝트에 프로젝트 참조를 추가 합니다.Add a project reference to the SimpleMathComponent project. 솔루션 탐색기에서 SimpleMathProjection 프로젝트 아래의 종속성 노드를 마우스 오른쪽 단추로 클릭 하 고, 프로젝트 참조 추가를 선택 하 고, SimpleMathComponent 프로젝트를 선택 합니다.In Solution Explorer, right click the Dependencies node under the SimpleMathProjection project, select Add Project Reference, and select the SimpleMathComponent project.

    참고

    Visual Studio 16.8 Preview 4 이상을 사용 하는 경우 4 단계를 완료 한 후이 섹션을 완료 합니다.If you are using Visual Studio 16.8 Preview 4 or later, you are done with this section after completing step 4. Visual Studio 16.8 Preview 3을 사용 하는 경우 5 단계도 완료 해야 합니다.If you are using Visual Studio 16.8 Preview 3, you must also complete step 5.

  5. Visual Studio 16.8 Preview 3을 사용 하는 경우: 솔루션 탐색기에서 SimpleMathProjection 노드를 두 번 클릭 하 여 편집기에서 프로젝트 파일을 열고 다음 요소를 파일에 추가한 다음 파일을 저장 하 고 닫습니다.If you're using Visual Studio 16.8 Preview 3: In Solution Explorer, double-click the SimpleMathProjection node to open the project file in the editor, add the following elements to the file, and then save and close the file.

    <ItemGroup>
      <PackageReference Include="Microsoft.Net.Compilers.Toolset" Version="3.8.0-4.20472.6" />
    </ItemGroup>
    
    <PropertyGroup>
      <RestoreSources>
        https://api.nuget.org/v3/index.json;
        https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
      </RestoreSources>
    </PropertyGroup>
    

    이러한 요소는 최신 c # 컴파일러를 포함 하는 필수 버전의 Microsoft.Net NuGet 패키지를 설치 합니다.These elements install the required version of the Microsoft.Net.Compilers.Toolset NuGet package, which includes the latest C# compiler. 이 연습에서는 이러한 프로젝트 파일 참조를 통해이 NuGet 패키지를 설치 합니다 .이 패키지의 필수 버전은 기본 공용 NuGet 피드에서 사용 하지 못할 수 있기 때문입니다.This walkthrough has you install this NuGet package via these project file references because the required version of this package may not be available on the default public NuGet feed.

이러한 단계를 수행 하면 솔루션 탐색기 다음과 같이 표시 됩니다.After these steps, your Solution Explorer should look similar to this.

프로젝션 프로젝트 종속성을 보여 주는 솔루션 탐색기

프로젝트 파일을 편집 하 여 c #/Winrt를 실행 합니다.Edit the project file to execute C#/WinRT

cswinrt.exe 를 호출 하 고 프로젝션 어셈블리를 생성 하기 전에 프로젝션 프로젝트에 대 한 프로젝트 파일을 편집 해야 합니다.Before you can invoke cswinrt.exe and generate the projection assembly, you must edit the project file for the projection project.

  1. 솔루션 탐색기에서 SimpleMathProjection 노드를 두 번 클릭 하 여 편집기에서 프로젝트 파일을 엽니다.In Solution Explorer, double-click the SimpleMathProjection node to open the project file in the editor.

  2. Windows SDK를 TargetFramework 참조 하도록 요소를 업데이트 합니다.Update the TargetFramework element to reference the Windows SDK. 이렇게 하면 interop 및 프로젝션 지원에 필요한 어셈블리 종속성 추가 됩니다.This adds assembly depedencies that are necessary for the interop and projection support. 이 샘플은이 연습을 통해 최신 Windows 10 릴리스를 대상으로 합니다. net 5.0-Windows 10.0.19041.0 (SDK 버전 2004 라고도 함).Our sample targets the latest Windows 10 release as of this walkthrough, net5.0-windows10.0.19041.0 (also known as SDK version 2004).

    <PropertyGroup>
      <TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
      <Platforms>x64</Platforms>
    </PropertyGroup>
    
  3. PropertyGroup여러 cswinrt 속성을 설정 하는 새 요소를 추가 합니다.Add a new PropertyGroup element that sets several cswinrt properties.

    <PropertyGroup>
      <CsWinRTIncludes>SimpleMathComponent</CsWinRTIncludes>
      <CsWinRTGeneratedFilesDir>$(OutDir)</CsWinRTGeneratedFilesDir>
    </PropertyGroup>
    

    이 예의 설정에 대 한 자세한 내용은 다음과 같습니다.Here are some details about the settings in this example:

    • CsWinRTIncludes속성은 프로젝트에 사용할 네임 스페이스를 지정 합니다.The CsWinRTIncludes property specifies which namespaces to project.
    • CsWinRTGeneratedFilesDir속성은 프로젝션에서 파일이 생성 되는 출력 디렉터리를 설정 합니다 .이 디렉터리는 원본에서 빌드할 때 다음 섹션에서 설정 합니다.The CsWinRTGeneratedFilesDir property sets the output directory where files from the projection are generated, which we set in the following section on building out of source.
  4. 이 연습에서 최신 c #/Winrt 버전은 Windows 메타 데이터를 지정 해야 할 수 있습니다.The latest C#/WinRT version as of this walkthrough may require specifying Windows Metadata. 이는 c #/Winrt. 이후 릴리스에서 수정 될 예정입니다.This will be fixed in a future release of C#/WinRT. 다음 중 하나를 사용 하 여 제공할 수 있습니다.This can be supplied with either:

    • 패키지 참조 (예: Microsoft. w i n k.A package reference, such as to Microsoft.Windows.SDK.Contracts, or

    • 명시적 값은 속성을 사용 하 여를 설정 합니다 CsWinRTWindowsMetadata .An explicit value set the with the CsWinRTWindowsMetadata property:

      <CsWinRTWindowsMetadata>10.0.19041.0</CsWinRTWindowsMetadata>
      
  5. SimpleMathProjection 파일을 저장 하 고 닫습니다.Save and close the SimpleMathProjection.csproj file.

소스에서 프로젝트 빌드Build projects out of source

관련 샘플에서 빌드는 디렉터리. build. props 파일을 사용 하 여 구성 됩니다.In the related sample, the build is configured with the Directory.build.props file. SimpleMathComponentSimpleMathProjection 프로젝트를 빌드할 때 생성 된 파일은 솔루션 수준의 _build 폴더에 표시 됩니다.The generated files from building both the SimpleMathComponent and SimpleMathProjection projects appear in the _build folder at the solution level. 소스 외부에서 빌드하도록 프로젝트를 구성 하려면 아래에 있는 build. props 파일을 솔루션 파일을 포함 하는 디렉터리에 복사 합니다.To configure your projects to build out of source, copy the Directory.build.props file below to the directory containing your solution file.

<Project>
  <PropertyGroup>
    <BuildOutDir>$([MSBuild]::NormalizeDirectory('$(SolutionDir)_build', '$(Platform)', '$(Configuration)'))</BuildOutDir>
    <OutDir>$([MSBuild]::NormalizeDirectory('$(BuildOutDir)', '$(MSBuildProjectName)', 'bin'))</OutDir>
    <IntDir>$([MSBuild]::NormalizeDirectory('$(BuildOutDir)', '$(MSBuildProjectName)', 'obj'))</IntDir>
  </PropertyGroup>
</Project>

이 단계는 프로젝션을 생성 하는 데 필요 하지 않지만, 동일한 디렉터리의 두 프로젝트에서 빌드 파일을 생성 하 고 빌드 정리 작업을 더 쉽게 만드는 방법으로 간단 하 게 만들 수 있습니다.Although this step is not required to generate a projection, it provides simplicity by generating build files from both projects in the same directory and making build cleanup easier. 소스에서 빌드하지 않는 경우 SimpleMathComponent 및 interop 어셈블리 SimpleMathComponent.dll 모두 해당 하는 프로젝트 폴더의 다른 디렉터리에 생성 됩니다.Note that if you do not build out of source, both SimpleMathComponent.winmd and the interop assembly SimpleMathComponent.dll will be generated in different directories in their respective project folders. 이러한 파일은 모두 아래 SimpleMathProjection 에서 참조 되므로 경로를 적절 하 게 변경 해야 합니다.These files are both referenced in SimpleMathProjection.nuspec below, so the paths would have to be changed accordingly.

프로젝션에서 NuGet 패키지 만들기Create a NuGet package from the projection

Interop 어셈블리를 배포 하 고 사용 하기 위해 몇 가지 추가 프로젝트 속성을 추가 하 여 솔루션을 빌드할 때 NuGet 패키지를 자동으로 만들 수 있습니다.To distribute and use the interop assembly, you can automatically create a NuGet package when building the solution by adding some additional project properties. 이 패키지에는 필요한 c #/Winrt 런타임 어셈블리에 대 한 interop 어셈블리 및 c #/Winrt NuGet 패키지에 대 한 종속성이 포함 됩니다.This package will include the interop assembly and a dependency on the C#/WinRT NuGet package for the required C#/WinRT runtime assembly. 이 런타임 어셈블리는 .NET 5.0 대상에 대 한 winrt.runtime.dll 이름이 지정 됩니다.This runtime assembly is named winrt.runtime.dll for .NET 5.0 targets.

  1. NuGet 사양 (. nuspec) 파일을 SimpleMathProjection 프로젝트에 추가 합니다.Add a NuGet spec (.nuspec) file to the SimpleMathProjection project.

    1. 솔루션 탐색기에서 SimpleMathProjection 노드를 마우스 오른쪽 단추로 클릭 하 고 Add, -> 새 폴더추가를 선택 하 고, 폴더 이름을 nuget로 합니다.In Solution Explorer, right-click the SimpleMathProjection node, choose Add -> New Folder, and name the folder nuget.
    2. Nuget 폴더를 마우스 오른쪽 단추로 클릭 하 고 Add -> 새 항목추가를 선택한 다음 XML 파일을 선택 하 고 이름을 SimpleMathProjection. nuspec로 선택 합니다.Right-click the nuget folder, choose Add -> New Item, choose the XML file, and name it SimpleMathProjection.nuspec.
  2. SimpleMathProjection 에 다음을 추가 하 여 패키지를 자동으로 생성 합니다.Add the following to SimpleMathProjection.csproj to automatically generate the package. 이러한 속성은 NuspecFile NuGet 패키지를 생성 하는 및 디렉터리를 지정 합니다.These properties specify the NuspecFile and the directory to generate the NuGet package.

    <PropertyGroup>
      <GeneratedNugetDir>.\nuget\</GeneratedNugetDir>
      <NuspecFile>$(GeneratedNugetDir)SimpleMathProjection.nuspec</NuspecFile>
      <OutputPath>$(GeneratedNugetDir)</OutputPath>
      <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    </PropertyGroup>
    
    
  3. Open the SimpleMathProjection.nuspec file to edit the package creation properties. Below is an example of a C++/WinRT component NuGet spec. Notice the dependency on CsWinRT for the net5.0 target framework moniker, as well as the target for lib\net5.0\SimpleMathProjection.dll, which points to the projection assembly SimpleMathComponent.dll instead of SimpleMathComponent.winmd. This behavior is new in .NET 5.0 and enabled by C#/WinRT.

    <?xml version="1.0" encoding="utf-8"?>
    <package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
      <metadata>
        <id>SimpleMathComponent</id>
        <version>0.1.0-prerelease</version>
        <authors>Contoso Math Inc.</authors>
        <description>A simple component with basic math operations</description>
        <dependencies>
          <group targetFramework=".NETCoreApp3.0" />
          <group targetFramework="UAP10.0" />
          <group targetFramework=".NETFramework4.6" />
          <group targetFramework="net5.0">
            <dependency id="Microsoft.Windows.CsWinRT" version="0.8.0" exclude="Build,Analyzers" />
          </group>
        </dependencies>
      </metadata>
      <files>
        <!--Support net46+, netcore3, net5, uap, c++ -->
        <file src="..\..\_build\x64\Debug\SimpleMathComponent\bin\SimpleMathComponent\SimpleMathComponent.winmd" target="lib\netcoreapp3.0\SimpleMathComponent.winmd" />
        <file src="..\..\_build\x64\Debug\SimpleMathComponent\bin\SimpleMathComponent\SimpleMathComponent.winmd" target="lib\uap10.0\SimpleMathComponent.winmd" />
        <file src="..\..\_build\x64\Debug\SimpleMathComponent\bin\SimpleMathComponent\SimpleMathComponent.winmd" target="lib\net46\SimpleMathComponent.winmd" />
        <file src="..\..\_build\x64\Debug\SimpleMathProjection\bin\SimpleMathProjection.dll" target="lib\net5.0\SimpleMathProjection.dll" />
        <file src="..\..\_build\x64\Debug\SimpleMathComponent\bin\SimpleMathComponent\SimpleMathComponent.dll" target="runtimes\win10-x64\native\SimpleMathComponent.dll" />
      </files>
    </package>
    

프로젝션 및 NuGet 패키지를 생성 하는 솔루션 빌드Build the solution to generate the projection and NuGet package

이제 솔루션을 빌드할 수 있습니다. 솔루션 노드를 마우스 오른쪽 단추로 클릭 하 고 솔루션 빌드를 선택 합니다.At this point you can now build the solution: right click on your solution node and select Build Solution. 그러면 먼저 구성 요소 프로젝트와 프로젝션 프로젝트가 빌드됩니다.This will first build the component project and then the projection project. Interop .cs 파일 및 어셈블리는 구성 요소 프로젝트의 메타 데이터 파일 외에도 출력 디렉터리에 생성 됩니다.The interop .cs files and assembly will be generated in the output directory, in addition to the metadata files from the component project. 또한 nuget 폴더에 생성 된 Nuget 패키지 simplemathcomponent 0.1.0 를 볼 수 있습니다.You will also be able to see the the generated NuGet package SimpleMathComponent0.1.0-prerelease.nupkg in the nuget folder.

프로젝션 생성을 보여 주는 솔루션 탐색기

C # .NET 5.0 콘솔 응용 프로그램에서 NuGet 패키지 참조Reference the NuGet package in a C# .NET 5.0 console application

투영 된 SimpleMathComponent을 사용 하기 위해 응용 프로그램에서 새로 만든 NuGet 패키지에 대 한 참조를 간단히 추가할 수 있습니다.To consume the projected SimpleMathComponent, you can simply add a reference to the newly created NuGet package in your application. 다음 단계에서는 별도의 솔루션에서 간단한 콘솔 앱을 만들어이 작업을 수행 하는 방법을 보여 줍니다.The following steps demonstrate how to do this by creating a simple Console app in a separate solution.

  1. 콘솔 앱 (.Net Core) 프로젝트를 사용 하 여 새 솔루션을 만듭니다.Create a new solution with a Console App (.NET Core) project.

    1. Visual Studio에서 파일 -> 새로 만들기 -> 프로젝트를 선택합니다.In Visual Studio, select File -> New -> Project.
    2. 새 프로젝트 추가 대화 상자에서 콘솔 앱 (.net Core) 프로젝트 템플릿을 검색 합니다.In the Add New Project dialog box, search for the Console App (.NET Core) project template. 템플릿을 선택 하 고 다음을 클릭 합니다.Select the template and click Next.
    3. 새 프로젝트의 이름을 SampleConsoleApp 하 고 만들기를 클릭 합니다.Name the new project SampleConsoleApp and click Create. 새 솔루션에서이 프로젝트를 만들면 SimpleMathComponent NuGet 패키지를 별도로 복원할 수 있습니다.Creating this project in a new solution allows you to restore the SimpleMathComponent NuGet package separately.
  2. 솔루션 탐색기에서 SampleConsoleApp 노드를 두 번 클릭 하 여 SampleConsoleApp 프로젝트 파일을 열고 다음 예제와 같이 대상 프레임 워크 모니커 및 플랫폼 구성을 업데이트 합니다.In Solution Explorer, double-click the SampleConsoleApp node to open the SampleConsoleApp.csproj project file, and update the target framework moniker and platform configuration as shown in the following example.

    <PropertyGroup>
      <TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
      <Platforms>x64</Platforms>
    </PropertyGroup>
    
  3. SimpleMathComponent NuGet 패키지를 SampleConsoleApp 프로젝트에 추가 합니다.Add the SimpleMathComponent NuGet package to the SampleConsoleApp project. MSIX 패키지에 패키지 되지 않은 앱에 필요한 VCRTForwarders NuGet 패키지도 필요 합니다.You will also need the Microsoft.VCRTForwarders.140 NuGet package, which is required in apps that are not packaged in an MSIX package. 프로젝트를 빌드할 때 SimpleMathComponent nuget을 복원 하려면 RestoreSources 구성 요소 솔루션의 nuget 폴더에 대 한 경로와 함께 속성을 사용 하면 됩니다.To restore the SimpleMathComponent NuGet when building the project, you can use the RestoreSources property with the path to the nuget folder in your component solution.

    <PropertyGroup>
      <RestoreSources>
          https://api.nuget.org/v3/index.json;
          ../../CppWinRTProjectionSample/SimpleMathProjection/nuget
      </RestoreSources>
    </PropertyGroup>
    
    <ItemGroup>
        <PackageReference Include="Microsoft.VCRTForwarders.140" Version="1.0.6" />
        <PackageReference Include="SimpleMathComponent" Version="0.1.0-prerelease" />
    </ItemGroup>
    

    이 연습에서는 SimpleMathComponent 에 대 한 NuGet 복원 경로가 두 솔루션 파일이 동일한 디렉터리에 있다고 가정 합니다.Note that for this walkthrough, the NuGet restore path for the SimpleMathComponent assumes that both solution files are in the same directory. 또는 로컬 NuGet 패키지 피드 를 솔루션에 추가할 수 있습니다.Alternatively, you can add a local NuGet package feed to your solution.

  4. SimpleMathComponent에서 제공 하는 기능을 사용 하도록 Program.cs 파일을 편집 합니다.Edit the Program.cs file to use the functionality provided by SimpleMathComponent.

    static void Main(string[] args)
    {
        var x = new SimpleMathComponent.SimpleMath();
        Console.WriteLine("Adding 5.5 + 6.5 ...");
        Console.WriteLine(x.add(5.5, 6.5).ToString());
    }
    
  5. 콘솔 앱을 빌드하고 실행 합니다.Build and run the console app. 아래 출력이 표시 됩니다.You should see the output below.

    콘솔 NET5 출력

리소스Resources