diff --git a/.azure-pipelines/release.yml b/.azure-pipelines/release.yml index d098c5a70..f754ce9d1 100644 --- a/.azure-pipelines/release.yml +++ b/.azure-pipelines/release.yml @@ -28,7 +28,7 @@ jobs: displayName: Install .NET SDK inputs: packageType: sdk - version: 5.0.201 + version: 8.0.413 - task: CmdLine@2 displayName: Build VFS for Git diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2dc811ea4..92e9ab675 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -8,7 +8,7 @@ on: jobs: build: - runs-on: windows-2019 + runs-on: windows-2025 name: Build and Unit Test strategy: @@ -24,7 +24,7 @@ jobs: - name: Install .NET SDK uses: actions/setup-dotnet@v4 with: - dotnet-version: 5.0.201 + dotnet-version: 8.0.413 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v2.0.0 @@ -66,7 +66,7 @@ jobs: path: artifacts\NuGetPackages functional_test: - runs-on: windows-2019 + runs-on: windows-2025 name: Functional Tests needs: build diff --git a/.vsconfig b/.vsconfig index e91f31e69..095606afa 100644 --- a/.vsconfig +++ b/.vsconfig @@ -2,12 +2,13 @@ "version": "1.0", "components": [ "Microsoft.Component.MSBuild", - "Microsoft.VisualStudio.Workload.NativeDesktop" + "Microsoft.Net.Component.4.7.1.TargetingPack", + "Microsoft.Net.Component.4.7.1.SDK", + "Microsoft.Net.Core.Component.SDK.8.0", + "Microsoft.VisualStudio.Component.VC.v143.x86.x64", + "Microsoft.VisualStudio.Component.Windows11SDK.26100", + "Microsoft.VisualStudio.Workload.NativeDesktop", "Microsoft.VisualStudio.Workload.ManagedDesktop", - "Microsoft.VisualStudio.Workload.NetCoreTools", - "Microsoft.Net.Core.Component.SDK.2.1", - "Microsoft.VisualStudio.Component.VC.v141.x86.x64", - "Microsoft.Net.Component.4.6.1.TargetingPack", - "Microsoft.Net.Component.4.6.1.SDK", + "Microsoft.VisualStudio.Workload.NetCoreTools" ] } \ No newline at end of file diff --git a/GVFS/FastFetch/FastFetch.csproj b/GVFS/FastFetch/FastFetch.csproj index 1a2bdaae9..df25afb5b 100644 --- a/GVFS/FastFetch/FastFetch.csproj +++ b/GVFS/FastFetch/FastFetch.csproj @@ -2,7 +2,7 @@ Exe - net461 + net471 x64 true diff --git a/GVFS/GVFS.Common/GVFS.Common.csproj b/GVFS/GVFS.Common/GVFS.Common.csproj index e19e8ee2e..daacd2ca2 100644 --- a/GVFS/GVFS.Common/GVFS.Common.csproj +++ b/GVFS/GVFS.Common/GVFS.Common.csproj @@ -1,7 +1,7 @@  - net461 + net471 true @@ -13,6 +13,7 @@ + diff --git a/GVFS/GVFS.FunctionalTests.LockHolder/GVFS.FunctionalTests.LockHolder.csproj b/GVFS/GVFS.FunctionalTests.LockHolder/GVFS.FunctionalTests.LockHolder.csproj index 290a12b46..bb03a4171 100644 --- a/GVFS/GVFS.FunctionalTests.LockHolder/GVFS.FunctionalTests.LockHolder.csproj +++ b/GVFS/GVFS.FunctionalTests.LockHolder/GVFS.FunctionalTests.LockHolder.csproj @@ -1,7 +1,7 @@  - net461 + net471 Exe diff --git a/GVFS/GVFS.FunctionalTests/GVFS.FunctionalTests.csproj b/GVFS/GVFS.FunctionalTests/GVFS.FunctionalTests.csproj index 0a64e7440..f170451f4 100644 --- a/GVFS/GVFS.FunctionalTests/GVFS.FunctionalTests.csproj +++ b/GVFS/GVFS.FunctionalTests/GVFS.FunctionalTests.csproj @@ -1,7 +1,7 @@  - net461 + net471 Exe diff --git a/GVFS/GVFS.GVFlt/GVFS.GVFlt.csproj b/GVFS/GVFS.GVFlt/GVFS.GVFlt.csproj index a436520f9..97e2973e3 100644 --- a/GVFS/GVFS.GVFlt/GVFS.GVFlt.csproj +++ b/GVFS/GVFS.GVFlt/GVFS.GVFlt.csproj @@ -1,7 +1,7 @@ - net461 + net471 diff --git a/GVFS/GVFS.Hooks/GVFS.Hooks.csproj b/GVFS/GVFS.Hooks/GVFS.Hooks.csproj index efe7842a7..23dd6ea97 100644 --- a/GVFS/GVFS.Hooks/GVFS.Hooks.csproj +++ b/GVFS/GVFS.Hooks/GVFS.Hooks.csproj @@ -2,7 +2,7 @@ Exe - net461 + net471 diff --git a/GVFS/GVFS.Installers/GVFS.Installers.csproj b/GVFS/GVFS.Installers/GVFS.Installers.csproj index bf0c5ec7f..13cf3e601 100644 --- a/GVFS/GVFS.Installers/GVFS.Installers.csproj +++ b/GVFS/GVFS.Installers/GVFS.Installers.csproj @@ -1,7 +1,7 @@ - net461 + net471 false $(RepoOutPath)GVFS.Payload\bin\$(Configuration)\win-x64\ diff --git a/GVFS/GVFS.Mount/GVFS.Mount.csproj b/GVFS/GVFS.Mount/GVFS.Mount.csproj index 6e41c0008..83d89be63 100644 --- a/GVFS/GVFS.Mount/GVFS.Mount.csproj +++ b/GVFS/GVFS.Mount/GVFS.Mount.csproj @@ -2,7 +2,7 @@ Exe - net461 + net471 diff --git a/GVFS/GVFS.NativeTests/GVFS.NativeTests.vcxproj b/GVFS/GVFS.NativeTests/GVFS.NativeTests.vcxproj index 87352d611..ae216cfae 100644 --- a/GVFS/GVFS.NativeTests/GVFS.NativeTests.vcxproj +++ b/GVFS/GVFS.NativeTests/GVFS.NativeTests.vcxproj @@ -17,19 +17,19 @@ {3771C555-B5C1-45E2-B8B7-2CEF1619CDC5} Win32Proj GVFSNativeTests - 10.0.16299.0 + 10.0 DynamicLibrary true - v142 + v143 NotSet DynamicLibrary false - v142 + v143 true NotSet diff --git a/GVFS/GVFS.Payload/GVFS.Payload.csproj b/GVFS/GVFS.Payload/GVFS.Payload.csproj index 1df5a3210..1311bc87d 100644 --- a/GVFS/GVFS.Payload/GVFS.Payload.csproj +++ b/GVFS/GVFS.Payload/GVFS.Payload.csproj @@ -1,7 +1,7 @@  - net461 + net471 false diff --git a/GVFS/GVFS.Payload/layout.bat b/GVFS/GVFS.Payload/layout.bat index de1c0df81..ebdae19c2 100644 --- a/GVFS/GVFS.Payload/layout.bat +++ b/GVFS/GVFS.Payload/layout.bat @@ -39,7 +39,7 @@ SET OUTPUT=%5 SET ROOT=%~dp0..\.. SET BUILD_OUT="%ROOT%\..\out" -SET MANAGED_OUT_FRAGMENT=bin\%CONFIGURATION%\net461\win-x64 +SET MANAGED_OUT_FRAGMENT=bin\%CONFIGURATION%\net471\win-x64 SET NATIVE_OUT_FRAGMENT=bin\x64\%CONFIGURATION% ECHO Copying files... diff --git a/GVFS/GVFS.PerfProfiling/GVFS.PerfProfiling.csproj b/GVFS/GVFS.PerfProfiling/GVFS.PerfProfiling.csproj index de092f981..bf3ce6850 100644 --- a/GVFS/GVFS.PerfProfiling/GVFS.PerfProfiling.csproj +++ b/GVFS/GVFS.PerfProfiling/GVFS.PerfProfiling.csproj @@ -2,7 +2,7 @@ Exe - net461 + net471 diff --git a/GVFS/GVFS.Platform.Windows/GVFS.Platform.Windows.csproj b/GVFS/GVFS.Platform.Windows/GVFS.Platform.Windows.csproj index 5cbd7e174..f8fb56597 100644 --- a/GVFS/GVFS.Platform.Windows/GVFS.Platform.Windows.csproj +++ b/GVFS/GVFS.Platform.Windows/GVFS.Platform.Windows.csproj @@ -1,7 +1,7 @@ - net461 + net471 diff --git a/GVFS/GVFS.PostIndexChangedHook/GVFS.PostIndexChangedHook.vcxproj b/GVFS/GVFS.PostIndexChangedHook/GVFS.PostIndexChangedHook.vcxproj index 0537dfaf1..3808ff027 100644 --- a/GVFS/GVFS.PostIndexChangedHook/GVFS.PostIndexChangedHook.vcxproj +++ b/GVFS/GVFS.PostIndexChangedHook/GVFS.PostIndexChangedHook.vcxproj @@ -14,7 +14,7 @@ {24D161E9-D1F0-4299-BBD3-5D940BEDD535} Win32Proj GVFSPostIndexChangedHook - 10.0.16299.0 + 10.0 GVFS.PostIndexChangedHook GVFS.PostIndexChangedHook @@ -22,13 +22,13 @@ Application true - v142 + v143 MultiByte Application false - v142 + v143 true MultiByte diff --git a/GVFS/GVFS.ReadObjectHook/GVFS.ReadObjectHook.vcxproj b/GVFS/GVFS.ReadObjectHook/GVFS.ReadObjectHook.vcxproj index 613e9d9a7..09e9e6616 100644 --- a/GVFS/GVFS.ReadObjectHook/GVFS.ReadObjectHook.vcxproj +++ b/GVFS/GVFS.ReadObjectHook/GVFS.ReadObjectHook.vcxproj @@ -14,7 +14,7 @@ {5A6656D5-81C7-472C-9DC8-32D071CB2258} Win32Proj readobject - 10.0.16299.0 + 10.0 GVFS.ReadObjectHook GVFS.ReadObjectHook @@ -22,13 +22,13 @@ Application true - v142 + v143 MultiByte Application false - v142 + v143 true MultiByte diff --git a/GVFS/GVFS.Service.UI/GVFS.Service.UI.csproj b/GVFS/GVFS.Service.UI/GVFS.Service.UI.csproj index 90589d933..48e5c1605 100644 --- a/GVFS/GVFS.Service.UI/GVFS.Service.UI.csproj +++ b/GVFS/GVFS.Service.UI/GVFS.Service.UI.csproj @@ -2,7 +2,7 @@ Exe - net461 + net471 diff --git a/GVFS/GVFS.Service/GVFS.Service.csproj b/GVFS/GVFS.Service/GVFS.Service.csproj index 821141326..c24eb6505 100644 --- a/GVFS/GVFS.Service/GVFS.Service.csproj +++ b/GVFS/GVFS.Service/GVFS.Service.csproj @@ -2,7 +2,7 @@ Exe - net461 + net471 true diff --git a/GVFS/GVFS.Tests/GVFS.Tests.csproj b/GVFS/GVFS.Tests/GVFS.Tests.csproj index c02954c26..c8c173ebf 100644 --- a/GVFS/GVFS.Tests/GVFS.Tests.csproj +++ b/GVFS/GVFS.Tests/GVFS.Tests.csproj @@ -1,7 +1,7 @@ - net461 + net471 diff --git a/GVFS/GVFS.UnitTests/GVFS.UnitTests.csproj b/GVFS/GVFS.UnitTests/GVFS.UnitTests.csproj index fe7648aac..890714857 100644 --- a/GVFS/GVFS.UnitTests/GVFS.UnitTests.csproj +++ b/GVFS/GVFS.UnitTests/GVFS.UnitTests.csproj @@ -1,7 +1,7 @@  - net461 + net471 Exe true @@ -21,6 +21,11 @@ + + + + + diff --git a/GVFS/GVFS.VirtualFileSystemHook/GVFS.VirtualFileSystemHook.vcxproj b/GVFS/GVFS.VirtualFileSystemHook/GVFS.VirtualFileSystemHook.vcxproj index 8fb0cdb17..9390120db 100644 --- a/GVFS/GVFS.VirtualFileSystemHook/GVFS.VirtualFileSystemHook.vcxproj +++ b/GVFS/GVFS.VirtualFileSystemHook/GVFS.VirtualFileSystemHook.vcxproj @@ -14,7 +14,7 @@ {2D23AB54-541F-4ABC-8DCA-08C199E97ABB} Win32Proj GVFSVirtualFileSystemHook - 10.0.16299.0 + 10.0 GVFS.VirtualFileSystemHook GVFS.VirtualFileSystemHook @@ -22,13 +22,13 @@ Application true - v142 + v143 MultiByte Application false - v142 + v143 true MultiByte diff --git a/GVFS/GVFS.Virtualization/GVFS.Virtualization.csproj b/GVFS/GVFS.Virtualization/GVFS.Virtualization.csproj index bc5fa77f8..91772d269 100644 --- a/GVFS/GVFS.Virtualization/GVFS.Virtualization.csproj +++ b/GVFS/GVFS.Virtualization/GVFS.Virtualization.csproj @@ -1,7 +1,7 @@ - net461 + net471 true diff --git a/GVFS/GVFS/GVFS.csproj b/GVFS/GVFS/GVFS.csproj index 6d9d579f9..892bc1386 100644 --- a/GVFS/GVFS/GVFS.csproj +++ b/GVFS/GVFS/GVFS.csproj @@ -2,7 +2,7 @@ Exe - net461 + net471 diff --git a/GVFS/GitHooksLoader/GitHooksLoader.vcxproj b/GVFS/GitHooksLoader/GitHooksLoader.vcxproj index 78a51bf7f..0c4d4fbdf 100644 --- a/GVFS/GitHooksLoader/GitHooksLoader.vcxproj +++ b/GVFS/GitHooksLoader/GitHooksLoader.vcxproj @@ -14,19 +14,19 @@ {798DE293-6EDA-4DC4-9395-BE7A71C563E3} Win32Proj GitHooksLoader - 10.0.16299.0 + 10.0 Application true - v142 + v143 Unicode Application false - v142 + v143 true Unicode diff --git a/Readme.md b/Readme.md index 2ee0517b9..e388634e5 100644 --- a/Readme.md +++ b/Readme.md @@ -42,15 +42,15 @@ will notify you when new versions are available. ## Building VFS for Git If you'd like to build your own VFS for Git Windows installer: -* Install Visual Studio 2017 Community Edition or higher (https://www.visualstudio.com/downloads/). +* Install Visual Studio 2022 Community Edition or higher (https://www.visualstudio.com/downloads/). * Include the following workloads: * .NET desktop development * Desktop development with C++ * .NET Core cross-platform development * Include the following additional components: * .NET Core runtime - * Windows 10 SDK (10.0.10240.0) -* Install the .NET Core 2.1 SDK (https://www.microsoft.com/net/download/dotnet-core/2.1) + * Windows 10 or 11 SDK (10.0+) +* Install the .NET Core 8 SDK (https://www.microsoft.com/net/download/dotnet-core/8) * Install [`nuget.exe`](https://www.nuget.org/downloads) * Create a folder to clone into, e.g. `C:\Repos\VFSForGit` * Clone this repo into the `src` subfolder, e.g. `C:\Repos\VFSForGit\src` @@ -59,13 +59,7 @@ If you'd like to build your own VFS for Git Windows installer: build will fail, and the second and subsequent builds will succeed. This is because the build requires a prebuild code generation step. For details, see the build script in the previous step. -You can also use Visual Studio 2019. There are a couple of options for getting all the dependencies. -* You can install Visual Studio 2017 side by side with Visual Studio 2019, and make sure that you have all the dependencies from Visual Studio 2017 installed -* Alternatively, if you only want to have Visual Studio 2019 installed, install the following extra dependencies: - * MSVC v141 VS 2017 C++ build tools via the optional components in the Visual Studio 2019 installer. It is under the "Desktop Development with C++" heading. - * Windows 10 SDK (10.0.10240.0) via the archived SDK page: https://developer.microsoft.com/en-us/windows/downloads/sdk-archive - -Visual Studio 2019 will [automatically prompt you to install these dependencies](https://devblogs.microsoft.com/setup/configure-visual-studio-across-your-organization-with-vsconfig/) when you open the solution. The .vsconfig file that is present in the root of the repository specifies all required components _except_ the Windows 10 SDK (10.0.10240.0) as this component is no longer shipped with VS2019 - **you'll still need to install that separately**. +Visual Studio 2022 will [automatically prompt you to install these dependencies](https://devblogs.microsoft.com/setup/configure-visual-studio-across-your-organization-with-vsconfig/) when you open the solution. The .vsconfig file that is present in the root of the repository specifies all required components. The installer can now be found at `C:\Repos\VFSForGit\BuildOutput\GVFS.Installer.Windows\bin\x64\[Debug|Release]\SetupGVFS..exe` diff --git a/scripts/CreateBuildArtifacts.bat b/scripts/CreateBuildArtifacts.bat index a7ba9795e..5cca08d5a 100644 --- a/scripts/CreateBuildArtifacts.bat +++ b/scripts/CreateBuildArtifacts.bat @@ -49,7 +49,7 @@ ECHO ^************************ ECHO Collecting FastFetch... mkdir %OUTROOT%\FastFetch xcopy /S /Y ^ - %VFS_OUTDIR%\FastFetch\bin\%CONFIGURATION%\net461\win-x64 ^ + %VFS_OUTDIR%\FastFetch\bin\%CONFIGURATION%\net471\win-x64 ^ %OUTROOT%\FastFetch\ || GOTO ERROR ECHO ^*********************************** @@ -57,7 +57,7 @@ ECHO ^* Collecting GVFS.FunctionalTests * ECHO ^*********************************** mkdir %OUTROOT%\GVFS.FunctionalTests xcopy /S /Y ^ - %VFS_OUTDIR%\GVFS.FunctionalTests\bin\%CONFIGURATION%\net461\win-x64 ^ + %VFS_OUTDIR%\GVFS.FunctionalTests\bin\%CONFIGURATION%\net471\win-x64 ^ %OUTROOT%\GVFS.FunctionalTests\ || GOTO ERROR ECHO ^************************************* diff --git a/scripts/RunFunctionalTests.bat b/scripts/RunFunctionalTests.bat index 80ab7e1e4..ef86a74f8 100644 --- a/scripts/RunFunctionalTests.bat +++ b/scripts/RunFunctionalTests.bat @@ -27,7 +27,7 @@ IF NOT %ERRORLEVEL% == 0 ( ECHO error: unable to locate Git on the PATH (has it been installed?) ) -%VFS_OUTDIR%\GVFS.FunctionalTests\bin\%CONFIGURATION%\net461\win-x64\GVFS.FunctionalTests.exe /result:TestResult.xml %2 %3 %4 %5 +%VFS_OUTDIR%\GVFS.FunctionalTests\bin\%CONFIGURATION%\net471\win-x64\GVFS.FunctionalTests.exe /result:TestResult.xml %2 %3 %4 %5 SET error=%ERRORLEVEL% CALL %VFS_SCRIPTSDIR%\StopAllServices.bat diff --git a/scripts/RunUnitTests.bat b/scripts/RunUnitTests.bat index f9f684580..3424825ca 100644 --- a/scripts/RunUnitTests.bat +++ b/scripts/RunUnitTests.bat @@ -5,6 +5,6 @@ IF "%1"=="" (SET "CONFIGURATION=Debug") ELSE (SET "CONFIGURATION=%1") SET RESULT=0 -%VFS_OUTDIR%\GVFS.UnitTests\bin\%CONFIGURATION%\net461\win-x64\GVFS.UnitTests.exe || SET RESULT=1 +%VFS_OUTDIR%\GVFS.UnitTests\bin\%CONFIGURATION%\net471\win-x64\GVFS.UnitTests.exe || SET RESULT=1 EXIT /b %RESULT%