Skip to content

Commit ff53a97

Browse files
RussKiemaraf
andauthored
Target .NET 8 (#73)
* Target .NET 8 Related gitextensions/gitextensions#11240 * Migrate to latest * VS MEF * Ensure directory when extracting plugin files --------- Co-authored-by: Marek Fišera <[email protected]>
1 parent bbaafa6 commit ff53a97

15 files changed

+38
-69
lines changed

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project>
22

33
<PropertyGroup>
4-
<TargetFramework>net6.0-windows</TargetFramework>
4+
<TargetFramework>net8.0-windows</TargetFramework>
55
<LangVersion>latest</LangVersion>
66
<NoWarn>$(NoWarn);1573;1591;1712</NoWarn>
77
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>

Packages.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<Project>
22

33
<ItemGroup>
4+
<PackageReference Update="Microsoft.VisualStudio.Composition" Version="17.2.41" />
45
<PackageReference Update="GitExtensions.Extensibility" Version="0.3.*" />
56
<PackageReference Update="Neptuo" Version="6.0.2" />
67
<PackageReference Update="Neptuo.Exceptions" Version="1.2.2" />
78
<PackageReference Update="Neptuo.Observables" Version="2.1.1" />
8-
<PackageReference Update="NuGet.PackageManagement" Version="6.3.1" />
9-
<PackageReference Update="System.ComponentModel.Composition" Version="6.0.0" />
10-
<PackageReference Update="System.Resources.Extensions" Version="6.0.0" />
9+
<PackageReference Update="NuGet.PackageManagement" Version="6.8.0" />
10+
<PackageReference Update="System.Resources.Extensions" Version="8.0.0" />
1111
</ItemGroup>
1212

1313
<!-- Test-related -->

appveyor.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,16 @@
33
#---------------------------------#
44

55
# version format
6-
version: 2.1.0.{build}
6+
version: 3.0.0.{build}
77

88
# version suffix, if any (e.g. '-RC1', '-beta' otherwise '')
99
environment:
1010
version_suffix: ''
11+
# Disable the .NET logo in the console output.
12+
DOTNET_NOLOGO: true
13+
# Disable the .NET first time experience to skip caching NuGet packages and speed up the build.
14+
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
15+
1116

1217
# Do not build on tags (GitHub and BitBucket)
1318
skip_tags: true

src/GitExtensions.PluginManager/GitExtensions.PluginManager.csproj

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<UseWindowsForms>true</UseWindowsForms>
5+
<UseWPF>true</UseWPF>
56
<Description>NuGet-based Plugin Manager for Git Extensions</Description>
67
<PackageTags>GitExtensions</PackageTags>
78
<PackageProjectUrl>https://github.com/gitextensions/gitextensions.pluginmanager</PackageProjectUrl>
@@ -18,7 +19,7 @@
1819

1920
<ItemGroup>
2021
<PackageReference Include="GitExtensions.Extensibility" />
21-
<PackageReference Include="System.ComponentModel.Composition" />
22+
<PackageReference Include="Microsoft.VisualStudio.Composition" />
2223
<PackageReference Include="System.Resources.Extensions" />
2324
</ItemGroup>
2425

@@ -27,15 +28,12 @@
2728
</ItemGroup>
2829

2930
<ItemGroup>
30-
<Reference Include="GitUI">
31-
<HintPath>$(GitExtensionsPath)\GitUI.dll</HintPath>
31+
<Reference Include="GitExtensions.Extensibility">
32+
<HintPath>$(GitExtensionsPath)\GitExtensions.Extensibility.dll</HintPath>
3233
</Reference>
3334
<Reference Include="GitUIPluginInterfaces">
3435
<HintPath>$(GitExtensionsPath)\GitUIPluginInterfaces.dll</HintPath>
3536
</Reference>
36-
<Reference Include="ResourceManager">
37-
<HintPath>$(GitExtensionsPath)\ResourceManager.dll</HintPath>
38-
</Reference>
3937
</ItemGroup>
4038

4139
<ItemGroup>

src/GitExtensions.PluginManager/GitExtensions.PluginManager.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
</metadata>
1515
<files>
1616
<file src="../../LICENSE.md" target="/" />
17-
<file src="bin/$configuration$/net6.0-windows/GitExtensions.PluginManager.dll" target="lib/" />
18-
<file src="bin/$configuration$/net6.0-windows/PackageManager/PackageManager.UI.exe" target="lib/PackageManager/" />
17+
<file src="bin/$configuration$/net8.0-windows/GitExtensions.PluginManager.dll" target="lib/" />
18+
<file src="bin/$configuration$/net8.0-windows/PackageManager/PackageManager.UI.exe" target="lib/PackageManager/" />
1919
</files>
2020
</package>

src/GitExtensions.PluginManager/Plugin.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
using GitExtensions.PluginManager.Properties;
1+
using GitExtensions.Extensibility.Git;
2+
using GitExtensions.Extensibility.Plugins;
3+
using GitExtensions.Extensibility.Settings;
4+
using GitExtensions.PluginManager.Properties;
25
using GitUIPluginInterfaces;
36
using PackageManager;
4-
using ResourceManager;
57
using System;
68
using System.Collections.Generic;
79
using System.ComponentModel;
810
using System.ComponentModel.Composition;
911
using System.Diagnostics;
1012
using System.IO;
11-
using System.Linq;
12-
using System.Text;
13-
using System.Threading.Tasks;
1413
using System.Windows.Forms;
1514

1615
namespace GitExtensions.PluginManager
@@ -24,7 +23,7 @@ public class Plugin : GitPluginBase
2423
public const string PackageId = @"GitExtensions.PluginManager";
2524
public const string GitExtensionsRelativePath = @"GitExtensions.exe";
2625
public const string PluginManagerRelativePath = @"PackageManager\PackageManager.UI.exe";
27-
public static readonly List<string> FrameworkMonikers = new List<string>() { "net5.0", "net6.0", "any", "netstandard2.0" };
26+
public static readonly List<string> FrameworkMonikers = new List<string>() { "net5.0", "net6.0", "net7.0", "net8.0", "any", "netstandard2.0" };
2827

2928
internal PluginSettings Configuration { get; private set; }
3029

src/GitExtensions.PluginManager/PluginSettings.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
using GitUIPluginInterfaces;
1+
using GitExtensions.Extensibility.Settings;
22
using System;
33
using System.Collections;
44
using System.Collections.Generic;
5-
using System.Linq;
6-
using System.Text;
7-
using System.Threading.Tasks;
85

96
namespace GitExtensions.PluginManager
107
{
@@ -15,14 +12,14 @@ internal class PluginSettings : IEnumerable<ISetting>
1512
/// </summary>
1613
public static BoolSetting CloseInstancesProperty { get; } = new BoolSetting("CloseInstances", "Close all instances of Git Extensions before starting Plugin Manager", false);
1714

18-
private readonly ISettingsSource source;
15+
private readonly SettingsSource source;
1916

2017
/// <summary>
2118
/// Gets current value of <see cref="CloseInstancesProperty"/>.
2219
/// </summary>
2320
public bool CloseInstances => source.GetBool(CloseInstancesProperty.Name, CloseInstancesProperty.DefaultValue);
2421

25-
public PluginSettings(ISettingsSource source)
22+
public PluginSettings(SettingsSource source)
2623
{
2724
this.source = source ?? throw new ArgumentNullException(nameof(source));
2825
}

src/PackageManager.NuGet/Models/InvalidPackageSourceImplementationException.cs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,12 @@ namespace PackageManager.Models
1010
/// <summary>
1111
/// Raised when passed implementation of <see cref="IPackageSource"/> to not compatible with <see cref="NuGetPackageSourceCollection"/>,
1212
/// </summary>
13-
[Serializable]
1413
public class InvalidPackageSourceImplementationException : Exception
1514
{
1615
/// <summary>
1716
/// Creates a new empty instance.
1817
/// </summary>
1918
public InvalidPackageSourceImplementationException()
2019
{ }
21-
22-
/// <summary>
23-
/// Creates a new instance for deserialization.
24-
/// </summary>
25-
/// <param name="info">A serialization info.</param>
26-
/// <param name="context">A streaming context.</param>
27-
protected InvalidPackageSourceImplementationException(SerializationInfo info, StreamingContext context)
28-
: base(info, context)
29-
{ }
3020
}
3121
}

src/PackageManager.NuGet/Models/NuGetPackageContent.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ string ExtractFile(string sourceFile, string targetPath, Stream sourceContent)
7474
string result = MapPackageFilePath(path, content.frameworkFolderName, targetPath);
7575
log.Debug($"Extracting file '{result}'.");
7676

77+
string resultDirectory = Path.GetDirectoryName(result);
78+
if (!Directory.Exists(resultDirectory))
79+
Directory.CreateDirectory(resultDirectory);
80+
7781
using (FileStream targetContent = new FileStream(result, FileMode.OpenOrCreate))
7882
sourceContent.CopyTo(targetContent);
7983

src/PackageManager.NuGet/Services/NuGetPackageVersionService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public async Task<IReadOnlyList<IPackage>> GetListAsync(int resultCount, IPackag
5656
catch (FatalProtocolException e) when (e.InnerException is TaskCanceledException)
5757
{
5858
cancellationToken.ThrowIfCancellationRequested();
59-
throw e;
59+
throw;
6060
}
6161
}
6262

0 commit comments

Comments
 (0)