wpf 如何在C#中支持不同的TFM?

flvlnr44  于 2022-11-18  发布在  C#
关注(0)|答案(1)|浏览(252)

我想从WPF程序发送一个本地吐司通知。现在我正在使用最新的。net 6。
这里是微软的教程:https://learn.microsoft.com/en-us/windows/apps/design/shell/tiles-and-notifications/send-local-toast?tabs=uwp
在教程中它说:

.NET apps must use one of the Windows TFMs, otherwise the toast sending and management APIs like Show() will be missing. Set your TFM to net6.0-windows10.0.17763.0 or later.

在windows10.0.17763.0或更高版本中,我想使用吐司通知。
在windows10.0.17763.0之前甚至windows 7中,我会自己做一个通知控件。
然而,在我将TFM设置为net 6. 0-windows10. 0. 17763. 0之后,我的程序将不再支持windows10. 0. 17763. 0之前甚至windows7。
有没有什么方法可以同时支持这两个平台?谢谢。

rekjcdws

rekjcdws1#

如果您希望在我们的应用中使用ToastContentBuilder.Show API,但仍使用其他API支持Windows 7,则可以在项目文件中指定两个TFM:

<PropertyGroup>
  <OutputType>WinExe</OutputType>
  <TargetFrameworks>net6.0-windows7;net6.0-windows10.0.17763.0</TargetFrameworks>
  <Nullable>enable</Nullable>
  <UseWPF>true</UseWPF>
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.2" />
</ItemGroup>

然后,您可以使用预处理器指令根据TFM:

#if WINDOWS10_0_17763_0_OR_GREATER
    new ToastContentBuilder()....Show();
#else
    //custom toast...
#endif

相关问题