Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
6b6baec
feat: migrate project to .NET 9 and update dependencies
Nov 18, 2025
736576e
fix: update NoWarn properties and suppress additional warnings
Nov 18, 2025
6f826a7
fix: update ExternalWebBrowser to use ProcessStartInfo for launching …
Nov 18, 2025
46d6d6e
fix: remove SYSLIB0012 from NoWarn properties in project files
Nov 18, 2025
a8bb5d7
fix: remove warning code 467 from NoWarn properties in project files
Nov 18, 2025
a22642e
fix: remove NU1603 from NoWarn properties in project files
Nov 18, 2025
c6d111b
fix: remove warning code 618 from NoWarn properties in project files
Nov 18, 2025
a30533b
fix: clean up NoWarn properties in project files and improve file rea…
Nov 18, 2025
a1d83f8
fix: update HTML link encoding in DataObjectExtensions
Nov 18, 2025
82f6ed3
fix: clean up NoWarn properties and improve icon handle checks
Nov 18, 2025
f57975a
fix: clean up NoWarn properties and suppress SYSLIB0051 warning in Ht…
Nov 18, 2025
43f71a1
fix: clean up NoWarn properties in project files
Nov 18, 2025
c1edacc
fix: remove obsolete serialization constructor from HttpValueCollection
Nov 18, 2025
60ae38d
fix: clean up NoWarn properties and add platform support attributes
Nov 18, 2025
92d1e4f
fix: clean up NoWarn properties and suppress NU1701 warning for Azure…
Nov 18, 2025
50afc83
fix: update target framework from .NET 9 to .NET 10 in project files
Nov 18, 2025
c942fc0
fix: update project files to use WiX Toolset v5.0.2 and .NET 10
Nov 18, 2025
ef6d1ea
fix: update CI/CD workflows to use latest actions and .NET 10
Nov 18, 2025
2e547a6
fix: update GitVersion actions to v3.0.0 in CI/CD workflows
Nov 18, 2025
85a9798
fix: update GitVersion actions to v4.2.0 and adjust next-version in G…
Nov 18, 2025
56c031f
fix: update HintTextFontStyle to nullable and improve hint text rende…
Nov 18, 2025
a11b3b6
fix: add summary documentation for ToastDismissalReason enum
supermem613 Nov 18, 2025
5658e24
fix: improve polymorphic serialization in ApplicationInstance
supermem613 Nov 18, 2025
a0e3a76
fix: enhance message serialization with envelope for type metadata
supermem613 Nov 18, 2025
e5f9846
refactor: remove in-memory token storage implementation for .NET 9 mi…
supermem613 Nov 18, 2025
ec015c7
fix: remove unused XML namespaces from Product.wxs
supermem613 Nov 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 12 additions & 17 deletions .github/workflows/CD.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,23 @@ jobs:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Get the version
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
run: echo "VERSION=${GITHUB_REF/refs\/tags\/\/}" >> $GITHUB_OUTPUT
shell: bash

- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0.9.7
uses: gittools/actions/gitversion/setup@v4.2.0
with:
versionSpec: '5.x'
versionSpec: '6.4.x'

- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0.9.7
uses: gittools/actions/gitversion/execute@v4.2.0
with:
useConfigFile: true

Expand Down Expand Up @@ -76,26 +76,21 @@ jobs:
echo "UncommittedChanges: ${{ steps.gitversion.outputs.uncommittedChanges }}"
echo "CommitDate: ${{ steps.gitversion.outputs.commitDate }}"

- name: Setup .NET
uses: actions/setup-dotnet@v1
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 5.0.x
dotnet-version: '10.0.x'

- name: Setup MSBuild.exe
uses: microsoft/Setup-MSBuild@v1.0.2

- name: Install WiX
run: nuget install WiX -Version 3.11.2
- name: Install WiX Toolset
run: dotnet tool install --global wix --version 5.0.2

- name: Build Project
run: msbuild /restore:true /p:Configuration=${{ matrix.Configuration }} /p:Platform=${{ matrix.TargetPlatform }} TeamMate.csproj
run: dotnet build --configuration ${{ matrix.Configuration }}
working-directory: ./Source/TeamMate
shell: cmd

- name: Create MSI
run: msbuild /restore:true /p:Configuration=${{ matrix.Configuration }} /p:Platform=${{ matrix.TargetPlatform }}
run: dotnet build --configuration ${{ matrix.Configuration }}
working-directory: ./Source/Setup
shell: cmd

- name: Release
uses: softprops/action-gh-release@v1
Expand Down
23 changes: 13 additions & 10 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,30 @@
name: CI
on: [pull_request]
permissions:
contents: read
jobs:
build:
name: MSBuild
name: Build
# runs-on: self-hosted
runs-on: windows-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup MSBuild.exe
uses: microsoft/Setup-MSBuild@v1.0.2
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'

- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0.9.7
uses: gittools/actions/gitversion/setup@v4.2.0
with:
versionSpec: '5.x'
versionSpec: '6.4.x'

- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0.9.7
uses: gittools/actions/gitversion/execute@v4.2.0
with:
useConfigFile: true

Expand Down Expand Up @@ -59,7 +63,6 @@ jobs:
echo "UncommittedChanges: ${{ steps.gitversion.outputs.uncommittedChanges }}"
echo "CommitDate: ${{ steps.gitversion.outputs.commitDate }}"

- name: MSBuild
run: msbuild -restore:true TeamMate.csproj
- name: Build
run: dotnet build --configuration Debug
working-directory: ./Source/TeamMate
shell: cmd
2 changes: 1 addition & 1 deletion GitVersion.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
next-version: 0.1.12.0
next-version: 0.1.12
mode: ContinuousDeployment
branches: {}
ignore:
Expand Down
2 changes: 2 additions & 0 deletions Source/Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<Project>
</Project>
2 changes: 2 additions & 0 deletions Source/Foundation/Chaos/ChaosMonkey.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
using Microsoft.Tools.TeamMate.Foundation.Diagnostics;
using System;
using System.Runtime.Versioning;
using System.Threading.Tasks;

namespace Microsoft.Tools.TeamMate.Foundation.Chaos
{
[SupportedOSPlatform("windows10.0.19041.0")]
public static class ChaosMonkey
{
[ThreadStatic]
Expand Down
2 changes: 2 additions & 0 deletions Source/Foundation/Chaos/ChaosScenario.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Runtime.Versioning;

namespace Microsoft.Tools.TeamMate.Foundation.Chaos
{
/// <summary>
/// Defines a chaos scenario and its metadata for use by the Chaos moneky.
/// </summary>
[SupportedOSPlatform("windows10.0.19041.0")]
public class ChaosScenario : INotifyPropertyChanged
{
public const double NeverFail = 0.0;
Expand Down
18 changes: 3 additions & 15 deletions Source/Foundation/Microsoft.Tools.TeamMate.Foundation.csproj
Original file line number Diff line number Diff line change
@@ -1,47 +1,35 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<TargetFramework>net10.0-windows10.0.19041.0</TargetFramework>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<OutputType>Library</OutputType>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<UseWindowsForms>true</UseWindowsForms>
<UseWPF>true</UseWPF>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
<Platforms>AnyCPU;x86</Platforms>
</PropertyGroup>
<PropertyGroup>
<NoWarn>467;618</NoWarn>
<BasePublishOutputPath>publish\</BasePublishOutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<OutputPath>bin\x64\Debug\</OutputPath>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<NoWarn>467;618</NoWarn>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<NoWarn>467;618</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<OutputPath>bin\x86\Debug\</OutputPath>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<NoWarn>467;618</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<NoWarn>467;618</NoWarn>
</PropertyGroup>
<ItemGroup>
<Reference Update="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.ServiceModel" />
<Reference Update="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<PackageReference Include="System.ServiceModel.Primitives" Version="10.0.652802" />
</ItemGroup>
<ItemGroup>
<Resource Include="Windows\Media\Effects\GrayscaleEffect.ps" />
Expand All @@ -57,6 +45,6 @@
</Resource>
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Management" Version="8.0.0" />
<PackageReference Include="System.Management" Version="9.0.0" />
</ItemGroup>
</Project>
8 changes: 7 additions & 1 deletion Source/Foundation/Native/Structs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ namespace Microsoft.Tools.TeamMate.Foundation.Native
{
// Defines struct mappings for PInvoke functions.

[StructLayout(LayoutKind.Sequential)]
public struct FILETIME
{
public uint dwLowDateTime;
public uint dwHighDateTime;
}

[StructLayout(LayoutKind.Sequential)]
public struct WINDOWINFO
{
Expand Down Expand Up @@ -273,7 +280,6 @@ public class PROCESS_INFORMATION
this.Close();
}

[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
internal void Close()
{
if ((this.hProcess != IntPtr.Zero) && (this.hProcess != INVALID_HANDLE_VALUE))
Expand Down
4 changes: 4 additions & 0 deletions Source/Foundation/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Windows;

// General Information about an assembly is controlled through the following
Expand All @@ -8,6 +9,9 @@
[assembly: AssemblyTitle("Foundation")]
[assembly: AssemblyDescription("")]

// Platform support
[assembly: SupportedOSPlatform("windows10.0.19041.0")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
Expand Down
6 changes: 5 additions & 1 deletion Source/Foundation/Shell/ExternalWebBrowser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ public static void Launch(Uri uri)
// TODO: When run in a loop, not all URLs might be launched. See
// http://stackoverflow.com/questions/6208307/process-starturl-in-a-loop-not-launching-every-instance
string browserUri = uri.AbsoluteUri;
Process.Start(browserUri);
var startInfo = new ProcessStartInfo(browserUri)
{
UseShellExecute = true
};
Process.Start(startInfo);
}
}
}
2 changes: 2 additions & 0 deletions Source/Foundation/Threading/SingleTaskRunner.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Microsoft.Tools.TeamMate.Foundation.Diagnostics;
using System;
using System.Runtime.Versioning;
using System.Threading.Tasks;

namespace Microsoft.Tools.TeamMate.Foundation.Threading
Expand All @@ -8,6 +9,7 @@ namespace Microsoft.Tools.TeamMate.Foundation.Threading
/// A utility class to only execute a task if a previous instance of the same task
/// was not already running.
/// </summary>
[SupportedOSPlatform("windows10.0.19041.0")]
public class SingleTaskRunner
{
private object syncLock = new object();
Expand Down
2 changes: 2 additions & 0 deletions Source/Foundation/Threading/TaskContext.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
using Microsoft.Tools.TeamMate.Foundation.ComponentModel;
using System;
using System.Diagnostics;
using System.Runtime.Versioning;
using System.Threading;

namespace Microsoft.Tools.TeamMate.Foundation.Threading
{
/// <summary>
/// A default implementation of a task context interface.
/// </summary>
[SupportedOSPlatform("windows10.0.19041.0")]
public class TaskContext : ObservableObjectBase, ITaskContext, IDisposable
{
private const double CompletedProgress = 1.0;
Expand Down
6 changes: 0 additions & 6 deletions Source/Foundation/Web/HttpUtility.cs
Original file line number Diff line number Diff line change
Expand Up @@ -726,7 +726,6 @@ internal String GetString()

// *** Source: ndp/fx/src/xsp/system/web/httpvaluecollection.cs

[Serializable()]
internal class HttpValueCollection : NameValueCollection
{
internal HttpValueCollection()
Expand All @@ -748,11 +747,6 @@ internal HttpValueCollection(int capacity)
{
}

protected HttpValueCollection(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}

internal void MakeReadOnly()
{
IsReadOnly = true;
Expand Down
2 changes: 2 additions & 0 deletions Source/Foundation/Windows/Controls/Data/ListFieldInfo.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
using Microsoft.Tools.TeamMate.Foundation.ComponentModel;
using System;
using System.ComponentModel;
using System.Runtime.Versioning;
using System.Windows.Data;

namespace Microsoft.Tools.TeamMate.Foundation.Windows.Controls.Data
{
/// <summary>
/// Represents a field displayed in a list view.
/// </summary>
[SupportedOSPlatform("windows10.0.19041.0")]
public class ListFieldInfo : ObservableObjectBase, ISelectableItem
{
private string name;
Expand Down
11 changes: 4 additions & 7 deletions Source/Foundation/Windows/Controls/HintTextAdorner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ public String HintText
/// <summary>
/// Get/Set the hint text font style
/// </summary>
public FontStyle HintTextFontStyle { get; set; }
public FontStyle? HintTextFontStyle { get; set; }

/// <summary>
/// Overridden to render the hint text when appropriate.
Expand All @@ -188,15 +188,12 @@ protected override void OnRender(DrawingContext drawingContext)
renderBrush.Opacity = 0.6;

// Draw the hint text on top of the control
FontStyle fontStyle = HintTextFontStyle;
if (fontStyle == null)
{
fontStyle = control.FontStyle;
}
FontStyle fontStyle = HintTextFontStyle ?? control.FontStyle;

var dpiInfo = VisualTreeHelper.GetDpi(control);
FormattedText text = new FormattedText(hintText, uiCulture, control.FlowDirection,
new Typeface(control.FontFamily, fontStyle, control.FontWeight, control.FontStretch),
control.FontSize, renderBrush);
control.FontSize, renderBrush, dpiInfo.PixelsPerDip);

text.TextAlignment = GetTextAlignment();
text.MaxTextHeight = Math.Max(control.ActualHeight, 1.0);
Expand Down
2 changes: 2 additions & 0 deletions Source/Foundation/Windows/Input/CommandDictionary.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Windows;
using System.Windows.Input;

namespace Microsoft.Tools.TeamMate.Foundation.Windows.Input
{
[SupportedOSPlatform("windows10.0.19041.0")]
public class CommandDictionary
{
private IDictionary<string, ICommand> commands = new Dictionary<string, ICommand>();
Expand Down
4 changes: 2 additions & 2 deletions Source/Foundation/Windows/Interop/InteropUtilities.cs
Original file line number Diff line number Diff line change
Expand Up @@ -150,15 +150,15 @@ public static IntPtr GetWindowIcon(IntPtr hwnd, WindowIconType type)

case WindowIconType.SmallOrAny:
iconHandle = GetSmallWindowIcon(hwnd);
if (iconHandle == null)
if (iconHandle == IntPtr.Zero)
{
iconHandle = GetLargeWindowIcon(hwnd);
}
break;

case WindowIconType.LargeOrAny:
iconHandle = GetLargeWindowIcon(hwnd);
if (iconHandle == null)
if (iconHandle == IntPtr.Zero)
{
iconHandle = GetSmallWindowIcon(hwnd);
}
Expand Down
2 changes: 2 additions & 0 deletions Source/Foundation/Windows/MVVM/ViewCatalog.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.Versioning;
using System.Windows;

namespace Microsoft.Tools.TeamMate.Foundation.Windows.MVVM
{
[SupportedOSPlatform("windows10.0.19041.0")]
public class ViewCatalog
{
private IDictionary<Type, Type> viewMap = new Dictionary<Type, Type>();
Expand Down
Loading
Loading