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%