Updated Dapplo.Windows to fix an API bug, starting on performance tests which write AVI files to see if we can add some experimental video capture.

This commit is contained in:
Robin 2019-01-15 16:02:56 +01:00
commit 5d90d1ed02
27 changed files with 97 additions and 55 deletions

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.Box</RootNamespace>
@ -49,7 +49,7 @@
<PackageReference Include="Dapplo.HttpExtensions" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.Confluence</RootNamespace>
@ -55,7 +55,7 @@
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Dapplo.Confluence" Version="0.8.16" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.Dropbox</RootNamespace>
@ -51,7 +51,7 @@
<PackageReference Include="Dapplo.HttpExtensions" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.ExternalCommand</RootNamespace>
@ -40,7 +40,7 @@
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="CliWrap" Version="2.2.0" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.Flickr</RootNamespace>
@ -49,7 +49,7 @@
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.GooglePhotos</RootNamespace>
@ -49,7 +49,7 @@
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.Imgur</RootNamespace>
@ -50,7 +50,7 @@
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
@ -30,10 +30,10 @@
<ItemGroup>
<PackageReference Include="Dapplo.Windows">
<Version>0.8.7</Version>
<Version>0.8.9</Version>
</PackageReference>
<PackageReference Include="Dapplo.Windows.Com">
<Version>0.8.7</Version>
<Version>0.8.9</Version>
</PackageReference>
<PackageReference Include="Unofficial.Microsoft.mshtml" Version="7.0.3300" />
</ItemGroup>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.Jira</RootNamespace>
@ -53,7 +53,7 @@
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Utils" Version="1.1.9" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Dapplo.Jira" Version="0.8.9" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.LegacyEditor</RootNamespace>
@ -136,8 +136,8 @@
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.HttpExtensions" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Icons" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Dapplo.Windows.Icons" Version="0.8.9" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.Lutim</RootNamespace>
@ -50,7 +50,7 @@
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="MahApps.Metro" Version="2.0.0-alpha0170" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.OCR</RootNamespace>
@ -40,7 +40,7 @@
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.Office</RootNamespace>
@ -40,7 +40,7 @@
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Interop.Microsoft.Office.Interop.OneNote" Version="1.1.0" />
<PackageReference Include="Microsoft.Office.Interop.Excel" Version="15.0.4795.1000" />
<PackageReference Include="Microsoft.Office.Interop.Outlook" Version="15.0.4797.1003" />

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.OneDrive</RootNamespace>
@ -50,7 +50,7 @@
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="MahApps.Metro" Version="2.0.0-alpha0170" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.Photobucket</RootNamespace>
@ -49,7 +49,7 @@
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.Tfs</RootNamespace>
@ -50,7 +50,7 @@
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="MahApps.Metro" Version="2.0.0-alpha0170" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.Addon.Win10</RootNamespace>
@ -61,6 +61,6 @@
<ItemGroup>
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
</ItemGroup>
</Project>

View file

@ -25,6 +25,7 @@
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Interop;
using System.Windows.Media.Imaging;
@ -50,6 +51,7 @@ namespace Greenshot.Addons.Core
private readonly SafeCompatibleDcHandle _safeCompatibleDcHandle;
private readonly SafeDibSectionHandle _safeDibSectionHandle;
private readonly SafeSelectObjectHandle _safeSelectObjectHandle;
private IntPtr _bits;
/// <summary>
/// Return the source rectangle
@ -90,7 +92,7 @@ namespace Greenshot.Addons.Core
// Create BitmapInfoHeader, which is later used in the CreateDIBSection
var bitmapInfoHeader = BitmapInfoHeader.Create(DestinationSize.Width, DestinationSize.Height, 32);
// Create a DibSection, a device-independent bitmap (DIB)
_safeDibSectionHandle = Gdi32Api.CreateDIBSection(_desktopDcHandle, ref bitmapInfoHeader, DibColors.RgbColors, out _, IntPtr.Zero, 0);
_safeDibSectionHandle = Gdi32Api.CreateDIBSection(_desktopDcHandle, ref bitmapInfoHeader, DibColors.RgbColors, out _bits, IntPtr.Zero, 0);
// select the device-independent bitmap in the device context, storing the previous.
// This is needed, so every interaction with the DC will go into the DIB.

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
@ -62,10 +62,10 @@
<Version>0.9.18</Version>
</PackageReference>
<PackageReference Include="Dapplo.Windows.Clipboard">
<Version>0.8.7</Version>
<Version>0.8.9</Version>
</PackageReference>
<PackageReference Include="Dapplo.Windows.Icons">
<Version>0.8.7</Version>
<Version>0.8.9</Version>
</PackageReference>
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>

View file

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="MSBuild.Sdk.Extras/1.6.65"><!-- Microsoft.NET.Sdk.WindowsDesktop -->
<PropertyGroup>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
<TargetFrameworks>net471</TargetFrameworks><!-- net471;netcoreapp3.0 -->
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
@ -29,7 +29,7 @@
<ItemGroup>
<PackageReference Include="Dapplo.Windows.Icons">
<Version>0.8.7</Version>
<Version>0.8.9</Version>
</PackageReference>
</ItemGroup>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>

View file

@ -22,10 +22,14 @@
#endregion
using System;
using System.IO;
using BenchmarkDotNet.Attributes;
using Dapplo.Log;
using Dapplo.Windows.Common.Structs;
using Dapplo.Windows.User32;
using Greenshot.Addons.Core;
using SharpAvi;
using SharpAvi.Output;
namespace Greenshot.PerformanceTests
{
@ -35,10 +39,33 @@ namespace Greenshot.PerformanceTests
[MinColumn, MaxColumn, MemoryDiagnoser]
public class CapturePerformance
{
private static readonly LogSource Log = new LogSource();
// A ScreenCapture which captures the whole screen (multi-monitor)
private readonly GdiScreenCapture _screenCapture = new GdiScreenCapture(DisplayInfo.ScreenBounds);
private GdiScreenCapture _screenCapture;
// A ScreenCapture which captures the whole screen (multi-monitor) but with half the destination size, uses stretch-blt
private readonly GdiScreenCapture _screenCaptureResized = new GdiScreenCapture(DisplayInfo.ScreenBounds, new NativeSize(DisplayInfo.ScreenBounds.Width / 2, DisplayInfo.ScreenBounds.Height / 2));
private GdiScreenCapture _screenCaptureResized;
private AviWriter _aviWriter;
private IAviVideoStream _aviVideoStream;
[GlobalSetup]
public void Setup()
{
_screenCapture = new GdiScreenCapture(DisplayInfo.ScreenBounds);
var resizedSize = new NativeSize(DisplayInfo.ScreenBounds.Width / 2, DisplayInfo.ScreenBounds.Height / 2);
_screenCaptureResized = new GdiScreenCapture(DisplayInfo.ScreenBounds, resizedSize);
var aviFile = Path.Combine(Path.GetTempPath(), @"test.avi");
Log.Info().WriteLine("Writing AVI to {0}", aviFile);
_aviWriter = new AviWriter(aviFile)
{
FramesPerSecond = 30,
// Emitting AVI v1 index in addition to OpenDML index (AVI v2)
// improves compatibility with some software, including
// standard Windows programs like Media Player and File Explorer
EmitIndex1 = true
};
_aviVideoStream = _aviWriter.AddVideoStream(resizedSize.Width, resizedSize.Height, BitsPerPixel.Bpp24);
}
/// <summary>
/// This benchmarks a screen capture which does a lot of additional work
@ -71,16 +98,28 @@ namespace Greenshot.PerformanceTests
/// <summary>
/// Capture the screen with buffered settings, but resized (smaller) destination
/// </summary>
[Benchmark]
//[Benchmark]
public void CaptureBufferedResized()
{
_screenCaptureResized.CaptureFrame();
}
/// <summary>
/// Capture the screen with buffered settings, but resized (smaller) destination
/// </summary>
//[Benchmark]
public void CaptureAvi()
{
_screenCaptureResized.CaptureFrame();
// TODO: Write frame...
//_aviVideoStream.WriteFrame(false, new []{}, 0, 0);
}
[GlobalCleanup]
public void Cleanup()
{
_screenCapture.Dispose();
_aviWriter.Close();
}
}
}

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<RootNamespace>Greenshot.PerformanceTests</RootNamespace>
@ -66,6 +66,7 @@
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="2.10.0" />
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="2.1.0" />
<PackageReference Include="SharpAvi" Version="2.1.1" />
<PackageReference Include="System.Memory" Version="4.5.2" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.5.2" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.5.1" />

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>

View file

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
@ -88,9 +88,9 @@
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Log.LogFile" Version="1.3.11" />
<PackageReference Include="Dapplo.Log.Loggers" Version="1.3.11" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Icons" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Multimedia" Version="0.8.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
<PackageReference Include="Dapplo.Windows.Icons" Version="0.8.9" />
<PackageReference Include="Dapplo.Windows.Multimedia" Version="0.8.9" />
<PackageReference Include="Fody" Version="3.3.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>