C#-kivetítés létrehozása C++/WinRT-összetevőből, nuGet-ként terjesztve .NET alkalmazásokhoz

Ebben a témakörben bemutatjuk, hogyan használható a C#/WinRT egy C++/WinRT Windows-futtatókörnyezet összetevőből C# .NET vetületszerelvény (vagy interop szerelvény) generálására, és ennek .NET alkalmazások számára NuGet-csomagként való terjesztésére.

A .NET 6 és az azt követő verziókban a Windows metaadatfájlok (WinMD) használata már nem támogatott (lásd A WinRT beépített támogatása el lett távolítva a .NET-ből). Ehelyett a C#/WinRT eszköz bármely WinMD-fájlhoz létrehozhat egy kivetítési szerelvényt, amely lehetővé teszi a WinRT-összetevők használatát .NET alkalmazásokból. A vetületi szerelvényt interop szerelvénynek is nevezik. Ez az útmutató a következőket mutatja be:

  • A C#/WinRT-csomag használatával C#-vetítést hozhat létre egy C++/WinRT-összetevőből.
  • Ossza el az összetevőt és a vetítési szerelvényt NuGet-csomagként.
  • Használja fel a NuGet-csomagot egy .NET konzolalkalmazásból.

Előfeltételek

Ehhez az útmutatóhoz és a megfelelő mintához a következő eszközökre és összetevőkre van szükség:

  • Visual Studio 2022 vagy újabb telepített Univerzális Windows-platform fejlesztési munkaterheléssel. A Installation Details>Univerzális Windows-platform development lapon ellenőrizze a C++ (v14x) Univerzális Windows-platform eszközöket lehetőséget.
  • .NET 8.0 SDK (LTS) vagy újabb.

Ebben az útmutatóban a Visual Studio 2022-.NET 8-at fogjuk használni.

Fontos

Emellett le kell töltenie vagy klónoznia kell a témakör mintakódját a C#/WinRT-vetítési mintából GitHub. Látogasson el a CsWinRT webhelyre, és kattintson a zöld Kód gombra az git clone URL-cím lekéréséhez. Mindenképpen olvassa el a mintához tartozó README.md fájlt.

Egyszerű C++/WinRT Windows-futtatókörnyezet összetevő létrehozása

Az útmutató követéséhez először rendelkeznie kell egy C++/WinRT Windows-futtatókörnyezet összetevővel (WRC), amelyből létre kell hoznia a C#-vetítési szerelvényt.

Ez az útmutató a SimpleMathComponent WRC-t használja a C#/WinRT-vetítési mintából a(z) GitHubon, amelyet már letöltött vagy klónozott. SimpleMathComponent a Windows-futtatókörnyezet Összetevő (C++/WinRT) Visual Studio projektsablonból jött létre.

A SimpleMathComponent projekt megnyitásához nyissa meg a Visual Studio \CsWinRT\src\Samples\NetProjectionSample\CppWinRTComponentProjectionSample.sln fájlt, amelyet az adattár letöltésében vagy klónozásában talál.

A projekt kódja az alábbi fejlécfájlban látható alapszintű matematikai műveletek funkcióit biztosítja.

// 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);
    };
}

Ellenőrizheti, hogy a Windows Asztali kompatibilis tulajdonság Igen értékre van-e állítva a SimpleMathComponent C++/WinRT Windows-futtatókörnyezet összetevőprojekthez. Ehhez a SimpleMathComponent project tulajdonságai között a Configuration Properties>General>Project Defaults, állítsa a Windows Asztali kompatibilis tulajdonságot Yes értékre. Ez biztosítja, hogy a megfelelő futtatókörnyezeti bináris fájlok betöltve legyenek .NET asztali alkalmazások felhasználásához.

Asztali számítógéppel kompatibilis beállítási lap

A C++/WinRT-összetevők létrehozásának és a WinMD-fájlok létrehozásának részletes lépéseit a C++/WinRT Windows-futtatókörnyezet összetevőkben találja.

Megjegyzés:

Ha IInspectable::GetRuntimeClassName implementál az összetevőben, akkor érvényes WinRT-osztálynevet kell visszaadnia. Mivel a C#/WinRT az osztálynév sztringjét használja az interophoz, egy helytelen futtatókörnyezeti osztálynév egy InvalidCastExceptionkivételt fog eredményezni.

Vetítési projekt hozzáadása az összetevőmegoldáshoz

Először is, ha a CppWinRTComponentProjectionSample projekt továbbra is nyitva van a Visual Studio-ban, távolítsa el a SimpleMathProjection projektet a fejlesztési környezetből. Ezután törölje a fájlrendszerből a SimpleMathProjection mappát (vagy ha szeretné, nevezze át). Ezekre a lépésekre azért van szükség, hogy lépésről lépésre követni tudja ezt az útmutatót.

  1. Adjon hozzá egy új C#-kódtárprojektet a megoldáshoz.

    1. A Megoldáskezelő-ben kattintson a jobb gombbal a megoldáscsomópontra, és kattintson a Add>New Project.
    2. A Új projekt hozzáadása párbeszédpanelen írja be Osztálykönyvtár a keresőmezőbe. Válassza C# lehetőséget a nyelvi listából, majd válassza Windows a platformlistából. Válassza ki az egyszerűen osztálytárnak nevezett C#-projektsablont (előtagok és utótagok nélkül), majd kattintson a Tovább gombra.
    3. Nevezze el az új simpleMathProjection projektet. A helyet már ugyanarra \CsWinRT\src\Samples\NetProjectionSample a mappára kell állítani, amelyben a SimpleMathComponent mappa található, de ezt erősítse meg. Ezután kattintson a Next gombra.
    4. A Additional information lapon válassza a .NET 8.0 (Hosszú távú támogatás) lehetőséget, majd válassza a Create lehetőséget.
  2. Törölje a csonk Class1.cs fájlt a projektből.

  3. Az alábbi lépésekkel telepítheti a C#/WinRT NuGet-csomagot.

    1. A Megoldáskezelő kattintson a jobb gombbal a SimpleMathProjection projektre, és válassza a Manage NuGet Packages lehetőséget.
    2. A Browse lapon írja be vagy illessze be Microsoft.Windows. CsWinRT a keresőmezőbe, a keresési eredmények között válassza ki a legújabb verziójú elemet, majd kattintson a Install elemre a csomag SimpleMathProjection projektbe való telepítéséhez.
  4. Adjon hozzá a SimpleMathProjectionhez egy projekthivatkozást a SimpleMathComponent projekthez. A Megoldáskezelő-ben kattintson a jobb gombbal a Dependencies csomópontra a SimpleMathProjection project csomópont alatt, válassza a Add Project Reference, majd a SimpleMathComponent project >OK lehetőséget.

Még ne próbálja meg felépíteni a projektet. Ezt egy későbbi lépésben fogjuk megtenni.

Az eddigi Megoldáskezelő ehhez hasonlónak kell lennie (a verziószámok eltérőek lesznek).

Megoldáskezelő a kivetítési projekt függőségeit mutatja

Készíts projekteket forrásból

A CppWinRTComponentProjectionSample megoldás esetében a C#/WinRT-vetítési mintában (amelyet GitHubról letöltöttél vagy klónoztál, és most meg van nyitva), a build kimeneti helye a Directory.Build.props fájlban van konfigurálva a forráson kívül történő létrehozásra. Ez azt jelenti, hogy a build kimenetéből származó fájlok a forrásmappán kívül jönnek létre. A C#/WinRT eszköz használatakor javasoljuk, hogy a forrásból építsen ki. Ez megakadályozza, hogy a C#-fordító véletlenül felvegyen minden *.cs fájlt a projekt gyökérkönyvtára alatt, ami ismétlődő típushibákat okozhat (például több konfiguráció és/vagy platform összeállítása esetén).

Annak ellenére, hogy ez már konfigurálva van a CppWinRTComponentProjectionSample megoldáshoz, kövesse az alábbi lépéseket, hogy gyakorolhassa a konfiguráció saját maga számára történő elvégzését.

A megoldás konfigurálása forrásból való buildelésre:

  1. Ha a CppWinRTComponentProjectionSample megoldás továbbra is nyitva van, kattintson a jobb gombbal a megoldáscsomópontra, és válassza azÚj elem> lehetőséget. Válassza ki az XML-fájlelemet , és nevezze el Directory.Build.props néven (bővítmény nélkül .xml ). Kattintson az Igen gombra a meglévő fájl felülírásához.

  2. Cserélje le a Directory.Build.props tartalmát az alábbi konfigurációra.

    <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>
    
  3. Mentse és zárja be a Directory.Build.props fájlt.

A projektfájl szerkesztése a C#/WinRT végrehajtásához

Mielőtt meghívhatja az eszközt a cswinrt.exe vetítési szerelvény létrehozásához, először szerkesztenie kell a projektfájlt néhány projekttulajdonság megadásához.

  1. A Megoldáskezelő fájlban kattintson duplán a SimpleMathProjection csomópontra a projektfájl szerkesztőben való megnyitásához.

  2. Frissítse a TargetFramework elemet egy adott Windows SDK-verzió megcélzásához. Ez hozzáadja az interop és a projection támogatásához szükséges szerelvényfüggőségeket. Ez a minta a Windows SDK net6.0-windows10.0.19041.0 (más néven Windows 10, 2004-es verzió) verzióját célozza meg. Állítsa be a Platform elemet a AnyCPU értékre, hogy az eredményül kapott vetítési összeszerelés bármely alkalmazásarchitektúrából elérhető legyen. Ha engedélyezni szeretné, hogy a hivatkozási alkalmazások támogatják a korábbi Windows SDK-verziókat, beállíthatja a TargetPlatformMinimumVersion tulajdonságot is.

    <PropertyGroup>
      <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
      <!-- Set Platform to AnyCPU to allow consumption of the projection assembly from any architecture. -->
      <Platform>AnyCPU</Platform>
    </PropertyGroup>
    

    Megjegyzés:

    Ehhez az útmutatóhoz és a kapcsolódó mintakódhoz a megoldás x64 és Kiadványkészült. Vegye figyelembe, hogy a SimpleMathProjection projekt úgy van beállítva, hogy minden architektúra-konfiguráció esetén az AnyCPU platformra épüljön.

  3. Adjon hozzá egy második PropertyGroup elemet (közvetlenül az első után), amely több C#/WinRT-tulajdonságot állít be.

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

    A példában szereplő beállításokkal kapcsolatban az alábbiakban talál néhány részletet:

    • A CsWinRTIncludes tulajdonság határozza meg, hogy mely névtereket kell kivetíteni.
    • A CsWinRTGeneratedFilesDir tulajdonság beállítja azt a kimeneti könyvtárat, amelyben a vetítési forrásfájlok létre lettek hozva. Ez a tulajdonság a fenti szakaszban meghatározott OutDirértékre van állítva, a Directory.Build.props alapján.
  4. Mentse és zárja be a SimpleMathProjection.csproj fájlt, és szükség esetén kattintson a projektek újratöltéséhez .

NuGet-csomag létrehozása a kivetítéssel

Ha el szeretné osztani a kivetítési szerelvényt .NET alkalmazásfejlesztők számára, automatikusan létrehozhat egy NuGet-csomagot a megoldás létrehozásakor néhány további projekttulajdonság hozzáadásával. A .NET célok esetében a NuGet-csomagnak tartalmaznia kell a kivetítési szerelvényt és az összetevő implementációs szerelvényét.

  1. Az alábbi lépésekkel nuGet-specifikációs (.nuspec) fájlt adhat hozzá a SimpleMathProjection projekthez.

    1. A Megoldáskezelő kattintson a jobb gombbal a SimpleMathProjection csomópontra, válassza a Add>Új mappa lehetőséget, és nevezze el a mappát nuget.
    2. Kattintson a jobb gombbal a nuget mappára, válassza azÚj elem> lehetőséget, válassza az XML-fájlt, és adja neki a SimpleMathProjection.nuspec nevet.
  2. A Megoldáskezelő fájlban kattintson duplán a SimpleMathProjection csomópontra a projektfájl szerkesztőben való megnyitásához. Adja hozzá a következő tulajdonságcsoportot a most megnyitott SimpleMathProjection.csproj fájlhoz (közvetlenül a két meglévő PropertyGroup elem után) a csomag automatikus létrehozásához. Ezek a tulajdonságok határozzák meg a NuGet-csomag létrehozásához a NuspecFile elemet és a könyvtárat.

    <PropertyGroup>
      <GeneratedNugetDir>.\nuget\</GeneratedNugetDir>
      <NuspecFile>$(GeneratedNugetDir)SimpleMathProjection.nuspec</NuspecFile>
      <OutputPath>$(GeneratedNugetDir)</OutputPath>
      <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    </PropertyGroup>
    

    Megjegyzés:

    Ha külön szeretne létrehozni egy csomagot, akkor a parancssorból is futtathatja az nuget.exe eszközt. További információ egy NuGet-csomag létrehozásáról: Csomag létrehozása a nuget.exe parancssorihasználatával.

  3. Nyissa meg a SimpleMathProjection.nuspec fájlt a csomaglétrehozási tulajdonságok szerkesztéséhez, és illessze be a következő kódot. Az alábbi kódrészlet egy példa NuGet-specifikáció a SimpleMathComponent több cél keretrendszerre való terjesztéséhez. Vegye figyelembe, hogy a SimpleMathComponent.winmd helyett a SimpleMathProjection.dllvetítési szerelvény van megadva a cél lib\net6.0-windows10.0.19041.0\SimpleMathProjection.dll. Ez a viselkedés a .NET 6-os és újabb verzióiban új, és a C#/WinRT engedélyezi. Az implementálási szerelvényt (SimpleMathComponent.dll) is el kell osztani, és futásidőben kell betölteni.

    <?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>
    

    Megjegyzés:

    SimpleMathComponent.dllaz összetevő implementálási szerelvénye architektúraspecifikus. Ha más platformokat (például x86-ot vagy Arm64-et) támogat, először a SimpleMathComponentet fel kell építenie a kívánt platformokhoz, és hozzá kell adnia ezeket az assembly fájlokat a megfelelő RID-specifikus mappához. A kivetítési szerelvény SimpleMathProjection.dll és a SimpleMathComponent.winmd összetevő egyaránt architektúrasemleges.

  4. Mentse és zárja be az imént szerkesztett fájlokat.

A megoldás létrehozása a kivetítés és a NuGet-csomag létrehozásához

A megoldás létrehozása előtt ellenőrizze a Konfigurációkezelő beállításait a Visual Studio Build>Konfigurációkezelő alatt. Ebben a lépésről-lépésre útmutatóban állítsa be a Konfiguráció-t a Kiadás-ra és a Platform-t a x64-re a megoldáshoz.

Ezen a ponton már létrehozhatja a megoldást. Kattintson a jobb gombbal a megoldás csomópontra, és válassza a Build megoldáslehetőséget. Ez először a SimpleMathComponent projektet, majd a SimpleMathProjection projektet hozza létre. A WinMD összetevő és az implementáció szerelvénye (SimpleMathComponent.winmd és SimpleMathComponent.dll), a kivetítési forrásfájlok és a kivetítési szerelvény (SimpleMathProjection.dll) mind a _build kimeneti könyvtárban lesznek létrehozva. A létrehozott NuGet-csomagot is láthatja, a SimpleMathComponent0.1.0-prerelease.nupkg fájlt a \SimpleMathProjection\nuget mappa alatt.

Fontos

Ha a fent említett fájlok egyike sem jön létre, akkor hozza létre a megoldást még egyszer. Előfordulhat, hogy be kell zárnia és újra meg kell nyitnia a megoldást, mielőtt újraépíti.

Előfordulhat, hogy be kell zárnia és újra meg kell nyitnia a megoldást, hogy a .nupkg megjelenjen a Visual Studio-ban az ábrán látható módon (vagy egyszerűen válassza a Show All Files lehetőséget, majd törölje a kijelölést).

A Megoldáskezelő a vetületgenerálást mutatja

Hivatkozás a NuGet-csomagra egy C# .NET 6-os konzolalkalmazásban

A SimpleMathComponent .NET projektből való felhasználásához egyszerűen hozzáadhat egy új .NET projekthez egy hivatkozást az előző szakaszban létrehozott SimpleMathComponent0.1.0-prerelease.nupkg NuGet-csomagra. Az alábbi lépések bemutatják, hogyan teheti ezt meg egy egyszerű konzolalkalmazás külön megoldásban való létrehozásával.

  1. Az alábbi lépésekkel létrehozhat egy C# -konzolalkalmazás-projektet tartalmazó új megoldást (a projekt új megoldásban való létrehozása lehetővé teszi a SimpleMathComponent NuGet-csomag önálló visszaállítását).

    Fontos

    Ebben a mappában fogjuk létrehozni ezt az új \CsWinRT\src\Samples\NetProjectionSample, amelyet a C#/WinRT-vetítési minta letöltött vagy klónozott verziójában talál.

    1. A Visual Studio új példányában válassza a File>New>Project lehetőséget.
    2. Az Új projekt létrehozása párbeszédpanelen keresse meg a Konzolalkalmazás projektsablont. Válassza ki a egyszerűen konzolalkalmazásnak nevezett C#-projektsablont (előtagok és utótagok nélkül), majd kattintson a Tovább gombra. Ha 2019 Visual Studio használ, akkor a projektsablon Konzolalkalmazás.
    3. Nevezze el az új projektet SampleConsoleApp néven, állítsa a helyét arra \CsWinRT\src\Samples\NetProjectionSample a mappára, amelyben a SimpleMathComponent és a SimpleMathProjection mappa található, majd kattintson a Tovább gombra.
    4. A Additional information lapon válassza a .NET 8.0 (Hosszú távú támogatás) lehetőséget, majd válassza a Create lehetőséget.
  2. Megoldáskezelő Kattintson duplán a SampleConsoleApp csomópontra a SampleConsoleApp.csproj projektfájl megnyitásához, és szerkessze a TargetFramework és Platform tulajdonságokat úgy, hogy azok az alábbi felsorolásban látható módon jelenjenek meg. Adja hozzá az Platform elemet, ha nincs ott.

    <PropertyGroup>
      <OutputType>Exe</OutputType>
      <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
      <Platform>x64</Platform>
    </PropertyGroup>
    
  3. Ha a SampleConsoleApp.csproj projektfájl továbbra is nyitva van, a SampleConsoleApp projekthez hozzáadunk egy hivatkozást a SimpleMathComponent NuGet-csomaghoz. A SimpleMathComponent NuGet visszaállításához a projekt építésekor használhatja a RestoreSources tulajdonságot a komponens megoldás nuget mappájának elérési útjával. Másolja ki a következő konfigurációt, és illessze be a SampleConsoleApp.csproj (a Project elembe).

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

    Fontos

    A fent látható RestoreSources csomag elérési útja ../SimpleMathProjection/nuget. Ez az elérési út helyes, feltéve, hogy követte az útmutató lépéseit, így a SimpleMathComponent és a SampleConsoleApp-projektek is ugyanabban a mappában vannak (ebben az esetben a NetProjectionSample mappában). Ha valami mást tett, ennek megfelelően módosítania kell ezt az útvonalat. Másik lehetőségként hozzáadhat egy helyi NuGet csomagforrást a megoldáshoz.

  4. Szerkessze a Program.cs fájlt a SimpleMathComponent által biztosított funkciók használatához.

    var x = new SimpleMathComponent.SimpleMath();
    Console.WriteLine("Adding 5.5 + 6.5 ...");
    Console.WriteLine(x.add(5.5, 6.5).ToString());
    
  5. Mentse és zárja be az imént szerkesztett fájlokat, majd hozza létre és futtassa a konzolalkalmazást. Az alábbi kimenetnek kell megjelennie.

    console NET5 kimenet

Ismert problémák

  • A vetítési projekt létrehozásakor a következő hibaüzenet jelenhet meg: Error MSB3271 A létrehozott projekt processzorarchitektúrája, "MSIL", és az implementációs fájl "..\SimpleMathComponent.dll" processzorarchitektúrája, "x86", között eltérés van "..\SimpleMathComponent.winmd". Ez az eltérés futásidejű hibákat okozhat. Kérjük, fontolja meg a projekt célzott processzorarchitektúrájának módosítását a Konfigurációkezelő segítségével, hogy a processzorarchitektúrák a projekt és az implementációs fájl között illeszkedjenek, vagy válasszon olyan winmd fájlt, amely implementációs fájlja a projekt célprocesszorarchitektúrájával megegyező processzorarchitektúrával rendelkezik. A hiba elkerüléséhez adja hozzá a következő tulajdonságot a C# könyvtár projektfájljához:
    <PropertyGroup>
        <!-- Workaround for MSB3271 error on processor architecture mismatch -->
        <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
    </PropertyGroup>
    

További szempontok

A jelen témakörben bemutatott C#-vetítési (vagy interop) szerelvény meglehetősen egyszerű– nem függ más összetevőkhöz. Ha azonban olyan C#-vetítést szeretne létrehozni egy C++/WinRT-összetevőhöz, amely Windows App SDK típusra hivatkozik, a kivetítési projektben fel kell vennie egy hivatkozást a Windows App SDK NuGet-csomagra. Ha az ilyen hivatkozások hiányoznak, akkor olyan hibák jelennek meg, mint a "T< típus >nem található".

Egy másik dolog, amit ebben a témakörben teszünk, az a kivetítés NuGet-csomagként való terjesztése. Jelenleg szükséges.

Erőforrások