Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
Egyes információk az előre kiadott termékre vonatkoznak, amelyek jelentősen módosíthatók a kereskedelmi forgalomba kerülés előtt. A Microsoft nem vállal kifejezett vagy hallgatólagos szavatosságot az itt megadott információkra vonatkozóan.
Ez a cikk bemutatja, hogyan hozhat létre egy egyszerű hírcsatorna-szolgáltatót, amely regisztrál egy hírcsatorna-tartalom URI-t, és implementálja az IFeedProvider felületet. Az interfész metódusait a Widgets Board meghívja egyéni lekérdezési sztringparaméterek kéréséhez, általában a hitelesítési forgatókönyvek támogatásához. A hírcsatorna-szolgáltatók egyetlen vagy több hírcsatornát támogathatnak.
A C++/WinRT használatával történő hírcsatorna-szolgáltató implementálásával kapcsolatban lásd: Adatcsatorna-szolgáltató implementálása C# Windows-alkalmazásban (C++/WinRT).
Előfeltételek
- Az eszköznek engedélyeznie kell a fejlesztői módot. További információért tekintse meg az Eszköz engedélyezése fejlesztésre című útmutatót.
- Visual Studio 2022 vagy újabb verzió a Univerzális Windows Platform fejlesztési munkafolyamattal. Mindenképpen adja hozzá a C++ (v143) összetevőt az opcionális legördülő listából.
Új C++/WinRT win32-konzolalkalmazás létrehozása
Hozzon létre egy új projektet a Visual Studióban. Az Új projekt létrehozása párbeszédpanelen állítsa a nyelvi szűrőt "C++" értékre, a platformszűrőt pedig Windowsra, majd válassza ki a Windows Konzolalkalmazás (C++/WinRT) projektsablont. Adja az új projektnek az "ExampleFeedProvider" nevet. Ebben az útmutatóban győződjön meg arról, hogy a Megoldás és projekt elhelyezése ugyanabban a könyvtárban nincs bejelölve. Amikor a rendszer kéri, állítsa az alkalmazás cél Windows-verzióját a 10.022631.2787-es vagy újabb verzióra.
Hivatkozások hozzáadása a Windows App SDK-hoz és a Windows implementációs könyvtár nuGet-csomagjaihoz
Ez a minta a legújabb stabil Windows App SDK NuGet-csomagot használja. A Megoldáskezelőben kattintson a jobb gombbal a Hivatkozások elemre , és válassza a NuGet-csomagok kezelése... lehetőséget. A NuGet-csomagkezelőben válassza a Tallózás lapot, és keressen rá a "Microsoft.WindowsAppSDK" kifejezésre. Válassza ki a legújabb stabil verziót a Verzió legördülő listában, majd kattintson a Telepítés gombra.
Ez a minta a Windows implementációs kódtár NuGet-csomagjának használatát is használja. A Megoldáskezelőben kattintson a jobb gombbal a Hivatkozások elemre , és válassza a NuGet-csomagok kezelése... lehetőséget. A NuGet-csomagkezelőben válassza a Tallózás lapot, és keressen rá a "Microsoft.Windows.ImplementationLibrary" kifejezésre. Válassza ki a legújabb verziót a Verzió legördülő listában, majd kattintson a Telepítés gombra.
Az előre összeállított fejlécfájlban (pch.h) adja hozzá az alábbi include utasításokat.
//pch.h
#pragma once
#include <wil/cppwinrt.h>
#include <wil/resource.h>
...
#include <winrt/Microsoft.Windows.Widgets.Providers.h>
Megjegyzés:
Először a wil/cppwinrt.h fejlécet kell tartalmaznia a WinRT-fejlécek előtt.
A hírcsatorna-szolgáltató alkalmazás megfelelő leállításának kezeléséhez a winrt::get_module_lock egyéni implementációjára van szükség. Előre deklaráljuk a SignalLocalServerShutdown metódust, amely a main.cpp fájlban lesz definiálva, és beállítunk egy eseményt, amely az alkalmazás kilépését jelzi. Adja hozzá a következő kódot a pch.h fájlhoz, közvetlenül a #pragma once
irányelv alá, a többi beillesztés előtt.
//pch.h
#include <stdint.h>
#include <combaseapi.h>
// In .exe local servers the class object must not contribute to the module ref count, and use
// winrt::no_module_lock, the other objects must and this is the hook into the C++ WinRT ref counting system
// that enables this.
void SignalLocalServerShutdown();
namespace winrt
{
inline auto get_module_lock() noexcept
{
struct service_lock
{
uint32_t operator++() noexcept
{
return ::CoAddRefServerProcess();
}
uint32_t operator--() noexcept
{
const auto ref = ::CoReleaseServerProcess();
if (ref == 0)
{
SignalLocalServerShutdown();
}
return ref;
}
};
return service_lock{};
}
}
#define WINRT_CUSTOM_MODULE_LOCK
FeedProvider-osztály hozzáadása a hírcsatornaműveletek kezeléséhez
A Visual Studio-ban kattintson a jobb gombbal a ExampleFeedProvider
projektre a Megoldáskezelőben, és válassza a Hozzáadás ->Osztálylehetőséget. Az Osztály hozzáadása párbeszédpanelen nevezze el a "FeedProvider" osztályt, és kattintson a Hozzáadás gombra.
Az IFeedProvider interfészt implementáló osztály deklarálása
Az IFeedProvider felület olyan metódusokat határoz meg, amelyeket a Widgets Board meghív a hírcsatorna-szolgáltatóval való műveletek indításához. Cserélje le a FeedProvider.h fájl üres osztálydefinícióját a következő kódra. Ez a kód deklarál egy struktúrát, amely implementálja az IFeedProvider interfészt , és deklarálja a prototípusokat az interfész módszereihez.
// FeedProvider.h
#pragma once
struct FeedProvider : winrt::implements<FeedProvider, winrt::Microsoft::Windows::Widgets::Feeds::Providers::IFeedProvider>
{
FeedProvider() {}
/* IFeedrovider required functions that need to be implemented */
void OnFeedProviderEnabled(winrt::Microsoft::Windows::Widgets::Feeds::Providers::FeedProviderEnabledArgs args);
void OnFeedProviderDisabled(winrt::Microsoft::Windows::Widgets::Feeds::Providers::FeedProviderDisabledArgs args);
void OnFeedEnabled(winrt::Microsoft::Windows::Widgets::Feeds::Providers::FeedEnabledArgs args);
void OnFeedDisabled(winrt::Microsoft::Windows::Widgets::Feeds::Providers::FeedDisabledArgs args);
void OnCustomQueryParametersRequested(winrt::Microsoft::Windows::Widgets::Feeds::Providers::CustomQueryParametersRequestedArgs args);
/* IFeedProvider required functions that need to be implemented */
};
Az IFeedProvider metódusok implementálása
A következő néhány szakaszban implementáljuk az IFeedProvider felület módszereit . Mielőtt belemerülne az interfész módszerekbe, adja hozzá a következő sorokat FeedProvider.cpp
, az include irányelvek után, hogy bevezesse a hírcsatorna-szolgáltatói API-kat a winrt névtérbe, és engedélyezze a hozzáférést az előző lépésben deklarált térképhez.
Megjegyzés:
Az IFeedProvider felület visszahívási metódusaiba átadott objektumok csak a visszahíváson belül lesznek érvényesek. Ne tároljon hivatkozásokat ezekre az objektumokra, mert a visszahívás környezetén kívüli viselkedésük nincs meghatározva.
// WidgetProvider.cpp
namespace winrt
{
using namespace Microsoft::Windows::Widgets::Feeds::Providers;
}
OnFeedSzolgáltatóEngedélyezve
Az OnFeedProviderEnabled metódust akkor hívja meg a rendszer, ha a Widgets Board gazdagép létrehoz egy, a szolgáltatóhoz társított hírcsatornát. A módszer megvalósítása során létre kell hozni egy lekérdezési sztringet, amely tartalmazza azokat a paramétereket, amelyek átkerülnek a hírcsatorna tartalmát biztosító URL-címre, beleértve a szükséges hitelesítési tokeneket is. Hozzon létre egy CustomQueryParametersUpdateOptions példányt, az esemény argumentumából átadva a FeedProviderDefinitionId azonosítót, amely azonosítja az engedélyezett hírcsatornát és a lekérdezési karakterláncot. Kérje le az alapértelmezett FeedManagert , és hívja meg a SetCustomQueryParameterst , hogy regisztrálja a lekérdezési sztring paramétereit a Widgets Boardban.
// FeedProvider.cs
void FeedProvider::OnFeedProviderEnabled(winrt::Microsoft::Windows::Widgets::Feeds::Providers::FeedProviderEnabledArgs args)
{
std::wstringstream wstringstream;
wstringstream << args.FeedProviderDefinitionId().c_str() << L" feed provider was enabled." << std::endl;
_putws(wstringstream.str().c_str());
auto updateOptions = winrt::CustomQueryParametersUpdateOptions(args.FeedProviderDefinitionId(), L"param1¶m2");
winrt::FeedManager::GetDefault().SetCustomQueryParameters(updateOptions);
}
AmikorAdatszolgáltatóLetiltva
Az OnFeedProviderDisabled akkor van meghívva , amikor a widgetek táblája le van tiltva a szolgáltató összes hírcsatornáján. A hírcsatorna-szolgáltatóknak nem kell semmilyen műveletet végrehajtaniuk a metódushívásra válaszul. A metódushívás telemetriai célokra, illetve a lekérdezési sztring paramétereinek frissítésére vagy a hitelesítési jogkivonatok visszavonására használható, ha szükséges. Ha az alkalmazás csak egyetlen hírcsatorna-szolgáltatót támogat, vagy ha az alkalmazás által támogatott összes hírcsatorna-szolgáltató le van tiltva, akkor az alkalmazás a visszahívásra válaszul kiléphet.
// FeedProvider.cs
void FeedProvider::OnFeedProviderDisabled(winrt::Microsoft::Windows::Widgets::Feeds::Providers::FeedProviderDisabledArgs args)
{
std::wstringstream wstringstream;
wstringstream << args.FeedProviderDefinitionId().c_str() << L" feed provider was disabled." << std::endl;
_putws(wstringstream.str().c_str());
}
OnFeedEngedélyezve, OnFeedLetiltva
Az OnFeedEnabled és az OnFeedDisabled parancsot a Widgets Board hívja meg, ha egy hírcsatorna engedélyezve van vagy le van tiltva. A hírcsatorna-szolgáltatóknak nem kell semmilyen műveletet végrehajtaniuk ezekre a metódushívásokra válaszul. A metódushívás telemetriai célokra, illetve a lekérdezési sztring paramétereinek frissítésére vagy a hitelesítési jogkivonatok visszavonására használható, ha szükséges.
// FeedProvider.cs
void FeedProvider::OnFeedEnabled(winrt::Microsoft::Windows::Widgets::Feeds::Providers::FeedEnabledArgs args)
{
std::wstringstream wstringstream;
wstringstream << args.FeedDefinitionId().c_str() << L" feed was enabled." << std::endl;
_putws(wstringstream.str().c_str());
}
// FeedProvider.cs
void FeedProvider::OnFeedDisabled(winrt::Microsoft::Windows::Widgets::Feeds::Providers::FeedDisabledArgs args)
{
std::wstringstream wstringstream;
wstringstream << args.FeedDefinitionId().c_str() << L" feed was disabled." << std::endl;
_putws(wstringstream.str().c_str());
}
EgyéniLekérdezésParaméterekKérés
Az OnCustomQueryParametersRequested akkor merül fel, amikor a widgetek táblája megállapítja, hogy a hírcsatorna-szolgáltatóhoz társított egyéni lekérdezési paramétereket frissíteni kell. Előfordulhat például, hogy ez a módszer akkor merül fel, ha a hírcsatorna-tartalom távoli webszolgáltatásból való lekérésének művelete meghiúsul. Az ebbe a metódusba átadott CustomQueryParametersRequestedArgsFeedProviderDefinitionId tulajdonsága határozza meg azt a hírcsatornát, amelyhez a lekérdezési sztring paramjait kérik. A szolgáltatónak újra kell létrehoznia a lekérdezési sztringet, és a SetCustomQueryParameters meghívásával vissza kell adnia azt a widgetek táblájának.
// FeedProvider.cs
void FeedProvider::OnCustomQueryParametersRequested(winrt::Microsoft::Windows::Widgets::Feeds::Providers::CustomQueryParametersRequestedArgs args)
{
std::wstringstream wstringstream;
wstringstream << L"CustomQueryParameters were requested for " << args.FeedProviderDefinitionId().c_str() << std::endl;
_putws(wstringstream.str().c_str());
auto updateOptions = winrt::CustomQueryParametersUpdateOptions(args.FeedProviderDefinitionId(), L"param1¶m2");
winrt::FeedManager::GetDefault().SetCustomQueryParameters(updateOptions);
}
Regisztráljon egy osztály-előállítót, amely kérésre példányosítani fogja a FeedProvidert
Adja hozzá a FeedProvider osztályt meghatározó fejlécet az alkalmazás fájlja tetején lévő hivatkozásokhoz. Itt is be fogjuk vonni a mutex-et.
// main.cpp
...
#include "FeedProvider.h"
#include <mutex>
Deklarálja azt az eseményt, amely az alkalmazás kilépését eredményezi, valamint a SignalLocalServerShutdown függvényt, amely beállítja az eseményt. Illessze be a következő kódot a main.cpp.
// main.cpp
wil::unique_event g_shudownEvent(wil::EventOptions::None);
void SignalLocalServerShutdown()
{
g_shudownEvent.SetEvent();
}
Ezután létre kell hoznia egy CLSID azonosítót , amely a COM-aktiválás hírcsatorna-szolgáltatójának azonosítására szolgál. Visual Studióban generáljon GUID-azonosítót úgy, hogy lép a Eszközök ->GUID létrehozásamenüpontra. Válassza a "static const GUID =" lehetőséget, kattintson a Másolás gombra, majd illessze be a main.cpp
. Frissítse a GUID-definíciót a következő C++/WinRT szintaxissal, és állítsa be a GUID változó nevét feed_provider_clsid. Hagyja meg a GUID megjegyzésként megadott verzióját, mert később szüksége lesz erre a formátumra az alkalmazás csomagolásakor.
// main.cpp
...
// {80F4CB41-5758-4493-9180-4FB8D480E3F5}
static constexpr GUID feed_provider_clsid
{
0x80f4cb41, 0x5758, 0x4493, { 0x91, 0x80, 0x4f, 0xb8, 0xd4, 0x80, 0xe3, 0xf5 }
};
Adja hozzá a következő osztálygyári meghatározást a main.cpp
-hoz. Ez többnyire olyan sablonkód, amely nem a takarmányszolgáltató implementációira vonatkozik. Vegye figyelembe, hogy CoWaitForMultipleObjects megvárja a leállítási esemény aktiválását, mielőtt az alkalmazás kilépne.
// main.cpp
template <typename T>
struct SingletonClassFactory : winrt::implements<SingletonClassFactory<T>, IClassFactory>
{
STDMETHODIMP CreateInstance(
::IUnknown* outer,
GUID const& iid,
void** result) noexcept final
{
*result = nullptr;
std::unique_lock lock(mutex);
if (outer)
{
return CLASS_E_NOAGGREGATION;
}
if (!instance)
{
instance = winrt::make<FeedProvider>();
}
return instance.as(iid, result);
}
STDMETHODIMP LockServer(BOOL) noexcept final
{
return S_OK;
}
private:
T instance{ nullptr };
std::mutex mutex;
};
int main()
{
winrt::init_apartment();
wil::unique_com_class_object_cookie feedProviderFactory;
auto factory = winrt::make<SingletonClassFactory<winrt::Microsoft::Windows::Widgets::Feeds::Providers::IFeedProvider>>();
winrt::check_hresult(CoRegisterClassObject(
feed_provider_clsid,
factory.get(),
CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE,
feedProviderFactory.put()));
DWORD index{};
HANDLE events[] = { g_shudownEvent.get() };
winrt::check_hresult(CoWaitForMultipleObjects(CWMO_DISPATCH_CALLS | CWMO_DISPATCH_WINDOW_MESSAGES,
INFINITE,
static_cast<ULONG>(std::size(events)), events, &index));
return 0;
}
A hírcsatorna-szolgáltató alkalmazás becsomagolása
Az aktuális kiadásban csak a csomagolt alkalmazások regisztrálhatók hírcsatorna-szolgáltatókként. Az alábbi lépések végigvezetik az alkalmazás csomagolásának és az alkalmazásjegyzék frissítésének folyamatán, hogy regisztrálja az alkalmazást az operációs rendszeren hírcsatorna-szolgáltatóként.
MSIX csomagolási projekt létrehozása
A Megoldáskezelőben kattintson a jobb gombbal a megoldásra, és válassza az Add-New> Project(Új projekt hozzáadása) lehetőséget. Az Új projekt hozzáadása párbeszédpanelen válassza a "Windows Alkalmazáscsomagoló projekt" sablont, és kattintson a Tovább gombra. Állítsa a projekt nevét "ExampleFeedProviderPackage" értékre, majd kattintson a Létrehozás gombra. Amikor a rendszer kéri, állítsa a célverziót az 1809-es vagy újabb verzióra, és kattintson az OK gombra. Ezután kattintson a jobb gombbal az ExampleFeedProviderPackage projektre, és válassza a Projekt hozzáadása> referenciát. Válassza ki az ExampleFeedProvider projektet, és kattintson az OK gombra.
Windows App SDK-csomaghivatkozás hozzáadása a csomagolási projekthez
Az MSIX csomagolási projekthez hozzá kell adnia egy hivatkozást a Windows App SDK nuget-csomaghoz. A Megoldáskezelőben kattintson duplán az ExampleFeedProviderPackage projektre az ExampleFeedProviderPackage.wapproj fájl megnyitásához. Adja hozzá a következő xml-t a Project elemhez.
<!--ExampleFeedProviderPackage.wapproj-->
<ItemGroup>
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.5.231116003-experimentalpr">
<IncludeAssets>build</IncludeAssets>
</PackageReference>
</ItemGroup>
Megjegyzés:
Győződjön meg arról, hogy a PackageReference elemben megadott verzió megegyezik az előző lépésben hivatkozott legújabb stabil verzióval.
Ha a Windows App SDK megfelelő verziója már telepítve van a számítógépen, és nem szeretné csomagolni az SDK-futtatókörnyezetet a csomagban, a csomagfüggőséget az ExampleFeedProviderPackage projekt Package.appxmanifest fájljában adhatja meg.
<!--Package.appxmanifest-->
...
<Dependencies>
...
<PackageDependency Name="Microsoft.WindowsAppRuntime.1.5.233430000-experimental1" MinVersion="2000.638.7.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
...
</Dependencies>
...
A csomagjegyzék frissítése
A Megoldáskezelőben kattintson a jobb gombbal a fájlra, Package.appxmanifest
és válassza a Kód megtekintése lehetőséget a jegyzék xml-fájljának megnyitásához. Ezután hozzá kell adnia néhány névtér-deklarációt a használni kívánt alkalmazáscsomag-bővítményekhez. Adja hozzá a következő névtérdefiníciókat a legfelső szintű csomagelemhez .
<!-- Package.appmanifest -->
<Package
...
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
Az Alkalmazáselemen belül hozzon létre egy új üres, Bővítmények nevű elemet. Győződjön meg arról, hogy ez a uap:VisualElementszáró címkéje után jelenik meg.
<!-- Package.appxmanifest -->
<Application>
...
<Extensions>
</Extensions>
</Application>
Az első bővítmény, amelyet hozzá kell adnunk, a ComServer bővítmény. Ez regisztrálja a végrehajtható fájl belépési pontját az operációs rendszeren. Ez a bővítmény a COM-kiszolgáló regisztrációs kulcs beállításával történő regisztrálásának megfelelő csomagolt alkalmazás, amely nem a hírcsatorna-szolgáltatókra vonatkozik. Adja hozzá a következő com:Extension elemet a Bővítmények elem gyermekelemeként. Módosítsa a Id attribútum GUID-ját a com:Class elemben arra a GUID-ra, amelyet az előző lépésben generált.
<!-- Package.appxmanifest -->
<Extensions>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="ExampleFeedProvider\ExampleFeedProvider.exe" Arguments="-RegisterProcessAsComServer" DisplayName="C++ Feed Provider App">
<com:Class Id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" DisplayName="FeedProvider" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
Ezután adja hozzá az alkalmazást hírcsatorna-szolgáltatóként regisztráló bővítményt. Illessze be a uap3:Extension elemet a következő kódrészletbe, a Bővítmények elem gyermekeként. Mindenképpen cserélje le a COM-elemClassId attribútumát az előző lépésekben használt GUID azonosítóra.
<!-- Package.appxmanifest -->
<Extensions>
...
<uap3:Extension Category="windows.appExtension">
<uap3:AppExtension Name="com.microsoft.windows.widgets.feeds" DisplayName="ContosoFeed" Id="com.examplewidgets.examplefeed" PublicFolder="Public">
<uap3:Properties>
<FeedProvider Icon="ms-appx:Assets\StoreLogo.png" Description="FeedDescription">
<Activation>
<!-- Apps exports COM interface which implements IFeedProvider -->
<CreateInstance ClassId="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" />
</Activation>
<Definitions>
<Definition Id="Contoso_Feed"
DisplayName="Contoso_Feed Feed"
Description="Feed representing Contoso"
ContentUri="https://www.contoso.com/"
Icon="ms-appx:Images\StoreLogo.png">
</Definition>
<Definition Id="Fabrikam_Feed"
DisplayName="Fabrikam Feed"
Description="Feed representing Example"
ContentUri="https://www.fabrikam.com/"
Icon="ms-appx:Images\StoreLogo.png">
</Definition>
</Definitions>
</FeedProvider>
</uap3:Properties>
</uap3:AppExtension>
</uap3:Extension>
</Extensions>
Az összes elem részletes leírásáért és formázási információiért tekintse meg a Hírcsatorna-szolgáltató csomagjegyzékének XML-formátumát.
Ikonok hozzáadása a csomagolási projekthez
A Megoldáskezelőben kattintson a jobb gombbal az ExampleFeedProviderPackage elemre , és válassza az Új mappa hozzáadása> lehetőséget. Nevezze el ezt a mappát ProviderAssets néven, mivel ez volt az Package.appxmanifest
előző lépésben használt mappa. Itt fogjuk tárolni az ikont a hírcsatornáinkhoz. Miután hozzáadta a kívánt ikonokat, győződjön meg arról, hogy a képnevek megegyeznek a Path=ProviderAssets\ után megjelenő nevekkel, különben a hírcsatornák nem fognak megjelenni a widgettáblában.
A hírcsatorna-szolgáltató tesztelése
Győződjön meg arról, hogy kiválasztotta a fejlesztői gépnek megfelelő architektúrát a Megoldásplatformok legördülő listából, például "x64". A Megoldáskezelőben kattintson a jobb gombbal a megoldásra, és válassza a Megoldás létrehozása lehetőséget. Ha ez megtörtént, kattintson jobb gombbal az ExampleWidgetProviderPackage elemre, és válassza a Üzembe helyezéslehetőséget. A konzolalkalmazásnak üzembe helyezéskor kell elindulnia, és látni fogja, hogy a hírcsatornák engedélyezve lesznek a konzol kimenetében. Nyissa meg a Widgets Boardot, és az új hírcsatornákat a hírcsatornák szakasz tetején lévő füleken kell látnia.
A hírcsatorna-szolgáltató hibakeresése
Miután rögzítette a hírcsatornákat, a widgetplatform elindítja a hírcsatorna-szolgáltató alkalmazást, hogy releváns információkat kapjon és küldjön a hírcsatornáról. A futó hírcsatorna hibakereséséhez csatolhat egy hibakeresőt a futó hírcsatorna-szolgáltató alkalmazáshoz, vagy beállíthatja, hogy a Visual Studio automatikusan elindítsa a hírcsatorna-szolgáltatói folyamat hibakeresését az indítás után.
A futó folyamathoz való csatoláshoz:
- A Visual Studióban kattintson a(z) Hibakeresés -> Csatlakozásfolyamathoz.
- Szűrje a folyamatokat, és keresse meg a kívánt hírcsatorna-szolgáltató alkalmazást.
- Csatold a hibakeresőt.
Annak érdekében, hogy a hibakereső automatikusan csatolva legyen a folyamathoz az első indításkor:
- A Visual Studióban kattintson a Hibakeresés –> Egyéb hibakeresési célok –> Telepített alkalmazáscsomag hibakeresése elemre.
- Szűrje a csomagokat, és keresse meg a kívánt hírcsatorna-szolgáltatói csomagot.
- Válassza ki, és jelölje be a jelölőnégyzetet, amelynek szövege: "Ne induljon el, de végezzen hibakeresést, amikor a kód elindul".
- Kattintson az ésCsatolás gombra.
A konzolalkalmazás átalakítása Windows-alkalmazássá
Az ebben az útmutatóban létrehozott konzolalkalmazás windowsos alkalmazássá alakításához:
- Kattintson a jobb gombbal a ExampleWidgetProvider projektre a Megoldáskezelőben , és válassza a Tulajdonságok lehetőséget. Lépjen a Linker -> Rendszer részre, és módosítsa a AlsóRendszert "Konzol" értékről "Windows" értékre. Ez úgy is elvégezhető, hogy hozzáadjuk a <SubSystem>Windows</SubSystem>-t a <Link>..</Link> szakaszába a .vcxproj fájlban.
- A(z) main.cpp-ban módosítsa a
int main()
értéketint WINAPI wWinMain(_In_ HINSTANCE /*hInstance*/, _In_opt_ HINSTANCE /*hPrevInstance*/, _In_ PWSTR pCmdLine, _In_ int /*nCmdShow*/)
-re.
A hírcsatorna-szolgáltató alkalmazás közzététele
A hírcsatorna-szolgáltató fejlesztése és tesztelése után közzéteheti az alkalmazást a Microsoft Store-ban, hogy a felhasználók a hírcsatornákat az eszközeikre telepíthessék. Az alkalmazások közzétételével kapcsolatos részletes útmutatásért lásd : Alkalmazás közzététele a Microsoft Store-ban.
A Hírcsatornák tárgyűjteménye
Miután közzétette az alkalmazást a Microsoft Store-ban, kérheti, hogy az alkalmazás szerepeljen a Hírcsatornák Áruház gyűjteményében, amely segít a felhasználóknak felderíteni a Windows-hírcsatornákat tartalmazó alkalmazásokat. A kérés elküldéséhez tekintse meg a Hírcsatorna/Tábla beküldése a Store Gyűjteményhez.
Windows developer