C++/WinRT 구성 요소에서 C# 프로젝션을 생성하고 .NET 앱용 NuGet으로 배포합니다.
이 항목에서는 C#/WinRT를 사용하여 C++/WinRT Windows 런타임 구성 요소에서 C# .NET 프로젝션(또는 interop) 어셈블리를 생성하고 이를 .NET 애플리케이션용 NuGet 패키지로 배포하는 방법을 안내합니다.
.NET 6 이상에서는 WinMD(Windows 메타데이터) 파일의 사용이 더 이상 지원되지 않습니다(WinRT에 대한 기본 제공 지원이 .NET에서 제거됨 참조). 대신 C#/WinRT 도구를 사용하여 모든 WinMD 파일에 대한 프로젝션 어셈블리를 생성할 수 있습니다. 그러면 .NET 애플리케이션에서 WinRT 구성 요소를 사용할 수 있습니다. 프로젝션 어셈블리는 interop 어셈블리라고도 합니다. 이 연습에서는 다음을 수행하는 방법을 보여줍니다.
- C#/WinRT 패키지를 사용하여 C++/WinRT 구성 요소에서 C# 프로젝션을 생성합니다.
- 프로젝션 어셈블리와 함께 구성 요소를 NuGet 패키지로 배포합니다.
- .NET 콘솔 애플리케이션에서 NuGet 패키지를 사용합니다.
전제 조건
이 연습과 해당 샘플에는 다음 도구와 구성 요소가 필요합니다.
- 유니버설 Windows 플랫폼 개발 워크로드가 설치된 Visual Studio 2022(또는 Visual Studio 2019). 설치 세부 정보>유니버설 Windows 플랫폼 개발에서 C++(v14x) 유니버설 Windows 플랫폼 도구 옵션을 확인합니다.
- .NET 6.0 SDK 이상.
Visual Studio 2019만 해당합니다. C++/WinRT VSIX 확장은 Visual Studio에서 C++/WinRT 프로젝트 템플릿을 제공합니다. 프로젝트 템플릿은 Visual Studio 2022에 기본 제공됩니다.
이 연습에서는 Visual Studio 2022 및 .NET 6을 사용하겠습니다.
Important
또한 GitHub의 C#/WinRT 프로젝션 샘플에서 이 항목에 대한 샘플 코드를 다운로드하거나 복제해야 합니다. CsWinRT를 방문하여 녹색 코드 단추를 클릭하여 git clone
url을 가져옵니다. 샘플에 대한 README.md 파일을 읽어야 합니다.
간단한 C++/WinRT Windows 런타임 구성 요소 만들기
이 연습을 수행하려면 먼저 C# 프로젝션 어셈블리를 생성할 C++/WinRT WRC(Windows 런타임 구성 요소)가 있어야 합니다.
이 연습에서는 이미 다운로드하거나 복제한 GitHub의 C#/WinRT 프로젝션 샘플에서 SimpleMathComponent WRC를 사용합니다. SimpleMathComponent는 Windows 런타임 구성 요소(C++/WinRT) Visual Studio 프로젝트 템플릿(Visual Studio 2022 또는 C++/WinRT VSIX 확장과 함께 제공)에서 만들어졌습니다.
Visual Studio에서 SimpleMathComponent 프로젝트를 열려면 리포지토리의 다운로드 및 복제에서 찾을 수 있는 \CsWinRT\src\Samples\NetProjectionSample\CppWinRTComponentProjectionSample.sln
파일을 엽니다.
이 프로젝트의 코드는 아래 헤더 파일에 표시된 기본 수학 연산에 대한 기능을 제공합니다.
// 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);
};
}
SimpleMathComponent C++/WinRT Windows 런타임 구성 요소 프로젝트에 대해 Windows Desktop 호환 속성이 예로 설정되어 있는지 확인할 수 있습니다. 이렇게 하려면 SimpleMathComponent의 프로젝트 속성에 있는 구성 속성>일반>프로젝트 기본값 아래에서 Windows Desktop 호환성을 예로 설정합니다. 그러면 .NET 데스크톱 앱을 사용할 수 있도록 올바른 런타임 이진 파일이 로드됩니다.
C++/WinRT 구성 요소를 만들기 및 WinMD 파일 생성에 대한 자세한 단계는 C++/WinRT를 사용하는 Windows 런타임 구성 요소를 참조하세요.
참고 항목
구성 요소에서 IInspectable::GetRuntimeClassName을 구현하는 경우 유효한 WinRT 클래스 이름을 반환해야 합니다. C#/WinRT는 interop에 클래스 이름 문자열을 사용하므로 잘못된 런타임 클래스 이름은 InvalidCastException을 발생시킵니다.
구성 요소 솔루션에 프로젝션 프로젝트 추가
먼저 Visual Studio에서 CppWinRTComponentProjectionSample 솔루션이 열려 있는 상태에서 해당 솔루션에서 SimpleMathProjection 프로젝트를 제거합니다. 그런 다음, 파일 시스템에서SimpleMathProjection 폴더를 삭제하거나 원하는 경우 이름을 바꿉니다. 이 연습을 단계별로 수행하려면 이러한 단계가 필요합니다.
솔루션에 새 C# 라이브러리 프로젝트를 추가합니다.
- 솔루션 탐색기에서 솔루션 노드를 마우스 오른쪽 단추로 클릭하고 추가>새 프로젝트를 클릭합니다.
- 새 프로젝트 추가 대화 상자의 검색 상자에 클래스 라이브러리를 입력합니다. 언어 목록에서 C#을 선택한 다음, 플랫폼 목록에서 Windows를 선택합니다. 접두사나 접미사가 없는 클래스 라이브러리라고 하는 C# 프로젝트 템플릿을 선택하고 다음을 클릭합니다.
- 새 프로젝트 이름을 SimpleMathProjection으로 지정합니다. 위치는 이미 SimpleMathComponent 폴더가 있는 동일한
\CsWinRT\src\Samples\NetProjectionSample
폴더로 설정되어 있어야 하지만 확인합니다. 그런 후 Next 를 클릭합니다. - 추가 정보 페이지에서 .NET 6.0(장기 지원)을 선택한 다음, 만들기를 선택합니다.
프로젝트에서 스텁 Class1.cs 파일을 삭제합니다.
아래 단계를 사용하여 C#/WinRT NuGet 패키지를 설치합니다.
- 솔루션 탐색기에서 SimpleMathProjection 프로젝트를 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택합니다.
- 찾아보기 탭에서 Microsoft.Windows.CsWinRT를 검색 상자에 입력하거나 붙여넣고 검색 결과에서 최신 버전의 항목을 선택한 다음, 설치를 클릭하여 패키지를 SimpleMathProjection 프로젝트에 설치합니다.
SimpleMathProjection에 SimpleMathComponent 프로젝트에 대한 프로젝트 참조를 추가합니다. 솔루션 탐색기에서 SimpleMathProjection 프로젝트 아래의 종속성 노드를 마우스 오른쪽 단추로 클릭하고, 프로젝트 참조 추가를 선택하고, SimpleMathComponent 프로젝트 >확인을 선택합니다.
아직 프로젝트를 빌드하지 마세요. 이후 단계에서 이 작업을 수행합니다.
지금까지 솔루션 탐색기는 이와 유사하게 표시되어야 합니다(버전 번호가 다름).
원본에서 프로젝트 빌드
C#/WinRT 프로젝션 샘플의 CppWinRTComponentProjectionSample 솔루션(GitHub에서 다운로드하거나 복제했으며 현재 열려 있음)의 경우 빌드 출력 위치는 Directory.Build.props 파일을 사용하여 원본에서 빌드되도록 구성됩니다. 즉, 빌드 출력의 파일이 원본 폴더 외부에서 생성됩니다. C#/WinRT 도구를 사용하는 경우 원본에서 빌드하는 것이 좋습니다. 이렇게 하면 C# 컴파일러가 프로젝트 루트 디렉터리 아래에 있는 모든 *.cs 파일을 실수로 선택하여 중복 형식 오류가 발생하는 것을 방지합니다(예: 여러 구성 및/또는 플랫폼에 대해 컴파일하는 경우).
CppWinRTComponentProjectionSample 솔루션에 대해 이미 구성되어 있더라도 아래 단계에 따라 직접 구성하는 방법을 연습합니다.
원본에서 빌드하도록 솔루션을 구성하려면 다음을 수행합니다.
CppWinRTComponentProjectionSample 솔루션이 열려 있는 상태에서 솔루션 노드를 마우스 오른쪽 단추로 클릭하고 추가>새 항목를 선택합니다. XML 파일 항목을 선택하고 이름을 Directory.Build.props로 지정합니다(
.xml
확장명 제외). 예 를 클릭하여 기존 파일을 덮어씁니다.Directory.Build.props의 내용을 아래 구성으로 대체합니다.
<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>
Directory.Build.props 파일을 저장하고 닫습니다.
C#/WinRT를 실행하도록 프로젝트 파일 편집
cswinrt.exe
도구를 호출하여 프로젝션 어셈블리를 생성하려면 먼저 프로젝트 파일을 편집하여 몇 가지 프로젝트 속성을 지정해야 합니다.
솔루션 탐색기에서 SimpleMathProjection 노드를 두 번 클릭하여 편집기에서 프로젝트 파일을 엽니다.
특정 Windows SDK 버전을 대상으로 지정하도록
TargetFramework
요소를 업데이트합니다. 이렇게 하면 interop 및 프로젝션 지원에 필요한 어셈블리 종속성도 추가됩니다. 이 샘플은 Windows SDK 버전 net6.0-windows10.0.19041.0(Windows 10 버전 2004라고도 함)을 대상으로 합니다. 결과 프로젝션 어셈블리가 모든 앱 아키텍처에서 참조될 수 있도록Platform
요소를 AnyCPU로 설정합니다. 참조 애플리케이션이 이전 Windows SDK 버전을 지원하도록 허용하기 위해TargetPlatformMinimumVersion
속성을 설정할 수도 있습니다.<PropertyGroup> <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework> <!-- Set Platform to AnyCPU to allow consumption of the projection assembly from any architecture. --> <Platform>AnyCPU</Platform> </PropertyGroup>
참고 항목
이 연습 및 관련 샘플 코드의 경우 솔루션은 x64 및 릴리스용으로 빌드되었습니다. SimpleMathProjection 프로젝트는 모든 솔루션 아키텍처 구성에 대해 AnyCPU용으로 빌드되도록 구성되어 있습니다.
여러 C#/WinRT 속성을 설정하는 두 번째
PropertyGroup
요소(첫 번째 요소 바로 다음에)를 추가합니다.<PropertyGroup> <CsWinRTIncludes>SimpleMathComponent</CsWinRTIncludes> <CsWinRTGeneratedFilesDir>$(OutDir)</CsWinRTGeneratedFilesDir> </PropertyGroup>
이 예제의 설정에 대한 몇 가지 세부 정보는 다음과 같습니다.
CsWinRTIncludes
속성은 프로젝션할 네임스페이스를 지정합니다.CsWinRTGeneratedFilesDir
속성은 프로젝션 소스 파일이 생성되는 출력 디렉터리를 설정합니다. 이 속성은 위 섹션의 Directory.Build.props에 정의된OutDir
로 설정됩니다.
SimpleMathProjection.csproj 파일을 저장하여 닫고 필요한 경우 프로젝트 다시 로드를 클릭합니다.
프로젝션을 사용하여 NuGet 패키지 만들기
.NET 애플리케이션 개발자를 위한 프로젝션 어셈블리를 배포하려면 몇 가지 추가 프로젝트 속성을 추가하여 솔루션을 빌드할 때 NuGet 패키지를 자동으로 만들면 됩니다. .NET 대상의 경우 NuGet 패키지에는 구성 요소의 프로젝션 어셈블리와 구현 어셈블리가 포함되어야 합니다.
아래 단계에 따라 NuGet 사양(
.nuspec
) 파일을 SimpleMathProjection 프로젝트에 추가합니다.- 솔루션 탐색기에서 SimpleMathProjection 노드를 마우스 오른쪽 단추로 클릭하고 추가>새 폴더를 선택하여 폴더 이름을 nuget으로 지정합니다.
- nuget 폴더를 마우스 오른쪽 단추로 클릭하고, 추가>새 항목을 선택하고, XML 파일을 선택하고, 이름을 SimpleMathProjection.nuspec으로 지정합니다.
솔루션 탐색기에서 SimpleMathProjection 노드를 두 번 클릭하여 편집기에서 프로젝트 파일을 엽니다. 현재 열려 있는 SimpleMathProjection.csproj(두 개의 기존
PropertyGroup
요소 바로 뒤)에 다음 속성 그룹을 추가하여 패키지를 자동으로 생성합니다. 이러한 속성은NuspecFile
및 디렉터리를 지정하여 NuGet 패키지를 생성합니다.<PropertyGroup> <GeneratedNugetDir>.\nuget\</GeneratedNugetDir> <NuspecFile>$(GeneratedNugetDir)SimpleMathProjection.nuspec</NuspecFile> <OutputPath>$(GeneratedNugetDir)</OutputPath> <GeneratePackageOnBuild>true</GeneratePackageOnBuild> </PropertyGroup>
참고 항목
패키지를 별도로 생성하려는 경우 명령줄에서
nuget.exe
도구를 실행하도록 선택할 수도 있습니다. NuGet 패키지를 만드는 방법에 대한 자세한 내용은 nuget.exe CLI를 사용하여 패키지 만들기를 참조하세요.SimpleMathProjection.nuspec 파일을 열어 패키지 만들기 속성을 편집하고 다음 코드를 붙여넣습니다. 아래 코드 조각은 SimpleMathComponent를 여러 대상 프레임워크에 배포하기 위한 NuGet 사양의 예입니다. 대상
lib\net6.0-windows10.0.19041.0\SimpleMathProjection.dll
에 대해 SimpleMathComponent.winmd 대신 프로젝션 어셈블리인 SimpleMathProjection.dll이 지정됩니다. 이 동작은 .NET 6 이상의 새로운 기능이며 C#/WinRT에서 사용하도록 설정됩니다. 구현 어셈블리인SimpleMathComponent.dll
도 배포되어야 하며 런타임에 로드됩니다.<?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="net6.0-windows10.0.19041.0" /> <group targetFramework=".NETCoreApp3.0" /> <group targetFramework="UAP10.0" /> <group targetFramework=".NETFramework4.6" /> </dependencies> </metadata> <files> <!--Support .NET 6, .NET Core 3, UAP, .NET Framework 4.6, C++ --> <!--Architecture-neutral assemblies--> <file src="..\..\_build\AnyCPU\Release\SimpleMathProjection\bin\SimpleMathProjection.dll" target="lib\net6.0-windows10.0.19041.0\SimpleMathProjection.dll" /> <file src="..\..\_build\x64\Release\SimpleMathComponent\bin\SimpleMathComponent\SimpleMathComponent.winmd" target="lib\netcoreapp3.0\SimpleMathComponent.winmd" /> <file src="..\..\_build\x64\Release\SimpleMathComponent\bin\SimpleMathComponent\SimpleMathComponent.winmd" target="lib\uap10.0\SimpleMathComponent.winmd" /> <file src="..\..\_build\x64\Release\SimpleMathComponent\bin\SimpleMathComponent\SimpleMathComponent.winmd" target="lib\net46\SimpleMathComponent.winmd" /> <!--Architecture-specific implementation DLLs should be copied into RID-relative folders--> <file src="..\..\_build\x64\Release\SimpleMathComponent\bin\SimpleMathComponent\SimpleMathComponent.dll" target="runtimes\win10-x64\native\SimpleMathComponent.dll" /> <!--To support x86 and Arm64, build SimpleMathComponent for those other architectures and uncomment the entries below.--> <!--<file src="..\..\_build\Win32\Release\SimpleMathComponent\bin\SimpleMathComponent\SimpleMathComponent.dll" target="runtimes\win10-x86\native\SimpleMathComponent.dll" />--> <!--<file src="..\..\_build\arm64\Release\SimpleMathComponent\bin\SimpleMathComponent\SimpleMathComponent.dll" target="runtimes\win10-arm64\native\SimpleMathComponent.dll" />--> </files> </package>
참고 항목
구성 요소의 구현 어셈블리인 SimpleMathComponent.dll은 아키텍처와 관련됩니다. 다른 플랫폼(예: x86 또는 Arm64)을 지원하는 경우 먼저 원하는 플랫폼에 대한 SimpleMathComponent를 빌드하고 이러한 어셈블리 파일을 적절한 RID 상대 폴더에 추가해야 합니다. 프로젝션 어셈블리 SimpleMathProjection.dll 및 구성 요소 SimpleMathComponent.winmd는 둘 다 아키텍처 중립적입니다.
방금 편집한 파일을 저장하고 닫습니다.
솔루션을 빌드하여 프로젝션 및 NuGet 패키지 생성
솔루션을 빌드하기 전에 Visual Studio의 Build>Configuration Manager 아래에서 Configuration Manager 설정을 확인해야 합니다. 이 연습에서는 솔루션에 대해 구성을 릴리스로 설정하고 플랫폼을 x64로 설정합니다.
이제 솔루션을 빌드할 수 있습니다. 솔루션 노드를 마우스 오른쪽 단추로 클릭하고 솔루션 빌드를 선택합니다. 먼저 SimpleMathComponent 프로젝트를 빌드한 다음, SimpleMathProjection 프로젝트를 빌드합니다. 구성 요소 WinMD 및 구현 어셈블리(SimpleMathComponent.winmd 및 SimpleMathComponent.dll), 프로젝션 소스 파일 및 프로젝션 어셈블리(SimpleMathProjection.dll)는 모두 _build 출력 디렉터리 아래에 생성됩니다. \SimpleMathProjection\nuget 폴더 아래에 생성된 NuGet 패키지인 SimpleMathComponent0.1.0-prerelease.nupkg도 볼 수 있습니다.
Important
위에서 언급한 파일이 생성되지 않은 경우에는 솔루션을 다시 빌드합니다. 다시 빌드하기 전에 솔루션을 닫았다가 다시 열어야 할 수도 있습니다.
그림과 같이 Visual Studio에 .nupkg
가 표시되도록 솔루션을 닫았다가 다시 열어야 할 수 있습니다(또는 모든 파일 표시를 선택한 다음, 선택 취소하기만 하면 됨).
C# .NET 6 콘솔 애플리케이션에서 NuGet 패키지 참조
.NET 프로젝트에서 SimpleMathComponent를 사용하려면 이전 섹션에서 만든 SimpleMathComponent0.1.0-prerelease.nupkg NuGet 패키지에 대한 참조를 새 .NET 프로젝트에 추가하기만 하면 됩니다. 다음 단계에서는 별도의 솔루션에서 간단한 콘솔 앱을 만들어 이 작업을 수행하는 방법을 보여줍니다.
다음 단계를 사용하여 C# 콘솔 앱 프로젝트를 포함하는 새 솔루션을 만듭니다. 새 솔루션에서 이 프로젝트를 만들면 SimpleMathComponent NuGet 패키지를 독립적으로 복원할 수 있습니다.
Important
C#/WinRT 프로젝션 샘플의 다운로드 또는 복제본에서 찾을 수 있는
\CsWinRT\src\Samples\NetProjectionSample
폴더 내에 이 새 콘솔 앱 프로젝트를 만들 예정입니다.- Visual Studio의 새 인스턴스에서 파일>새로 만들기>프로젝트를 차례로 선택합니다.
- 새 프로젝트 만들기 대화 상자에서 콘솔 앱 프로젝트 템플릿을 검색합니다. 접두사나 접미사가 없는 콘솔 앱이라고 하는 C# 프로젝트 템플릿을 선택하고 다음을 클릭합니다. Visual Studio 2019를 사용하는 경우 프로젝트 템플릿은 콘솔 애플리케이션입니다.
- 새 프로젝트 이름을 SampleConsoleApp으로 지정하고, 해당 위치를 SimpleMathComponent 및 SimpleMathProjection 폴더가 있는 동일한
\CsWinRT\src\Samples\NetProjectionSample
폴더로 설정하고, 다음을 클릭합니다. - 추가 정보 페이지에서 .NET 6.0(장기 지원)을 선택한 다음, 만들기를 선택합니다.
솔루션 탐색기에서 SampleConsoleApp 노드를 두 번 클릭하여 SampleConsoleApp.csproj 프로젝트 파일을 열고 다음 목록과 같이 표시되도록
TargetFramework
및Platform
속성을 편집합니다.Platform
요소가 없으면 추가합니다.<PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework> <Platform>x64</Platform> </PropertyGroup>
SampleConsoleApp.csproj 프로젝트 파일이 열려 있는 상태에서 SampleConsoleApp 프로젝트에 SimpleMathComponent NuGet 패키지에 대한 참조를 추가합니다. 프로젝트를 빌드할 때 SimpleMathComponent NuGet을 복원하려면 구성 요소 솔루션의 nuget 폴더에 대한 경로와 함께
RestoreSources
속성을 사용하면 됩니다. 다음 구성을 복사하여 SampleConsoleApp.csproj(Project
요소 내부)에 붙여넣습니다.<PropertyGroup> <RestoreSources> https://api.nuget.org/v3/index.json; ../SimpleMathProjection/nuget </RestoreSources> </PropertyGroup> <ItemGroup> <PackageReference Include="SimpleMathComponent" Version="0.1.0-prerelease" /> </ItemGroup>
Important
위에 표시된 SimpleMathComponent 패키지의
RestoreSources
경로는../SimpleMathProjection/nuget
로 설정됩니다. 이 연습의 단계를 수행하여 SimpleMathComponent 및 SampleConsoleApp 프로젝트가 모두 동일한 폴더(이 경우NetProjectionSample
폴더)에 있도록 하는 것이 올바른 경로입니다. 다른 작업을 수행한 경우 그에 따라 해당 경로를 조정해야 합니다. 또는 솔루션에 로컬 NuGet 패키지 피드를 추가할 수 있습니다.SimpleMathComponent에서 제공하는 기능을 사용하도록 Program.cs 파일을 편집합니다.
var x = new SimpleMathComponent.SimpleMath(); Console.WriteLine("Adding 5.5 + 6.5 ..."); Console.WriteLine(x.add(5.5, 6.5).ToString());
방금 편집한 파일을 저장하고, 닫고, 콘솔 앱을 빌드하고, 실행합니다. 아래 출력이 표시되어야 합니다.
알려진 문제
- 프로젝션 프로젝트를 빌드할 때 다음과 같은 오류가 표시될 수 있습니다. 오류 MSB3271 빌드 중인 프로젝트의 프로세서 아키텍처 "MSIL"과 "..\SimpleMathComponent.winmd"에 대한 구현 파일 "..\SimpleMathComponent.dll"의 프로세서 아키텍처 "x86"이 일치하지 않습니다. 이러한 불일치로 인해 런타임 오류가 발생할 수 있습니다. 프로젝트와 구현 파일 간의 프로세서 아키텍처를 정렬하려면 Configuration Manager를 통해 프로젝트의 대상 프로세서 아키텍처를 변경하세요. 또는 프로젝트의 대상 프로세서 아키텍처와 일치하는 프로세서 아키텍처가 있는 구현 파일이 포함된 winmd 파일을 선택하세요. 이 오류를 해결하려면 C# 라이브러리 프로젝트 파일에 다음 속성을 추가합니다.
<PropertyGroup> <!-- Workaround for MSB3271 error on processor architecture mismatch --> <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch> </PropertyGroup>
추가 고려 사항
이 항목에서 만드는 방법을 보여 준 C# 프로젝션(또는 interop) 어셈블리는 매우 간단합니다. 즉, 다른 구성 요소에 대한 종속성이 없습니다. 그러나 Windows 앱 SDK 형식에 대한 참조가 있는 C++/WinRT 구성 요소에 대한 C# 프로젝션을 생성하려면 프로젝션 프로젝트에서 Windows 앱 SDK NuGet 패키지에 대한 참조를 추가해야 합니다. 해당 참조가 누락된 경우 "<T> 형식을 찾을 수 없습니다."와 같은 오류가 표시됩니다.
이 항목에서 수행하는 또 다른 작업은 프로젝션을 NuGet 패키지로 배포하는 것입니다. 가 현재 필요합니다.
리소스
Windows developer