diff --git a/NuGet.config b/NuGet.config
index 40e7c9a2e2..ced55102a9 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -2,6 +2,15 @@
+
+
+
+
+
+
+
+
+
@@ -9,5 +18,15 @@
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index a6d3e8423b..6114914564 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -19,14 +19,14 @@
-
+
https://github.com/dotnet/arcade
- 8fe02bab989df1265eee225df2c28af6dbdccc83
+ c28c6307d0600513219bcd9ab028c0fedbe591ec
-
+
https://github.com/dotnet/arcade
- 8fe02bab989df1265eee225df2c28af6dbdccc83
+ c28c6307d0600513219bcd9ab028c0fedbe591ec
diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1
index 2b0a5c9e66..5db4ad71ee 100644
--- a/eng/common/SetupNugetSources.ps1
+++ b/eng/common/SetupNugetSources.ps1
@@ -157,7 +157,7 @@ if ($dotnet31Source -ne $null) {
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password
}
-$dotnetVersions = @('5','6','7','8')
+$dotnetVersions = @('5','6','7','8','9')
foreach ($dotnetVersion in $dotnetVersions) {
$feedPrefix = "dotnet" + $dotnetVersion;
diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh
index b493479a1d..4604b61b03 100644
--- a/eng/common/SetupNugetSources.sh
+++ b/eng/common/SetupNugetSources.sh
@@ -99,7 +99,7 @@ if [ "$?" == "0" ]; then
PackageSources+=('dotnet3.1-internal-transport')
fi
-DotNetVersions=('5' '6' '7' '8')
+DotNetVersions=('5' '6' '7' '8' '9')
for DotNetVersion in ${DotNetVersions[@]} ; do
FeedPrefix="dotnet${DotNetVersion}";
diff --git a/eng/common/templates-official/steps/get-federated-access-token.yml b/eng/common/templates-official/steps/get-federated-access-token.yml
index fa899fc98c..c8dcf6b813 100644
--- a/eng/common/templates-official/steps/get-federated-access-token.yml
+++ b/eng/common/templates-official/steps/get-federated-access-token.yml
@@ -4,4 +4,4 @@ steps:
is1ESPipeline: true
${{ each parameter in parameters }}:
- ${{ parameter.key }}: ${{ parameter.value }}
+ ${{ parameter.key }}: ${{ parameter.value }}
\ No newline at end of file
diff --git a/eng/common/templates/steps/get-federated-access-token.yml b/eng/common/templates/steps/get-federated-access-token.yml
index 44aab941f3..31e151d9d9 100644
--- a/eng/common/templates/steps/get-federated-access-token.yml
+++ b/eng/common/templates/steps/get-federated-access-token.yml
@@ -4,4 +4,4 @@ steps:
is1ESPipeline: false
${{ each parameter in parameters }}:
- ${{ parameter.key }}: ${{ parameter.value }}
+ ${{ parameter.key }}: ${{ parameter.value }}
\ No newline at end of file
diff --git a/global.json b/global.json
index 5115e2c74d..6f548978ff 100644
--- a/global.json
+++ b/global.json
@@ -1,8 +1,8 @@
{
"tools": {
- "dotnet": "9.0.100-preview.5.24307.3"
+ "dotnet": "9.0.100-preview.7.24407.12"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24416.2"
+ "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24421.7"
}
}
diff --git a/src/Microsoft.TemplateEngine.Utils/InMemoryFileSystem.cs b/src/Microsoft.TemplateEngine.Utils/InMemoryFileSystem.cs
index fc1789d540..7bdfa45d32 100644
--- a/src/Microsoft.TemplateEngine.Utils/InMemoryFileSystem.cs
+++ b/src/Microsoft.TemplateEngine.Utils/InMemoryFileSystem.cs
@@ -771,7 +771,7 @@ public FileSystemDirectory(string name, string fullPath)
private class FileSystemFile
{
- private readonly object _sync = new();
+ private readonly ReaderWriterLockSlim _lock = new();
private byte[] _data;
private int _currentReaders;
private int _currentWriters;
@@ -798,7 +798,8 @@ public Stream OpenRead()
throw new IOException("File is currently locked for writing");
}
- lock (_sync)
+ _lock.EnterReadLock();
+ try
{
if (_currentWriters > 0)
{
@@ -806,7 +807,22 @@ public Stream OpenRead()
}
++_currentReaders;
- return new DisposingStream(new MemoryStream(_data, false), () => { lock (_sync) { --_currentReaders; } });
+ return new DisposingStream(new MemoryStream(_data, false), () =>
+ {
+ _lock.EnterWriteLock();
+ try
+ {
+ --_currentReaders;
+ }
+ finally
+ {
+ _lock.ExitWriteLock();
+ }
+ });
+ }
+ finally
+ {
+ _lock.ExitReadLock();
}
}
@@ -822,7 +838,8 @@ public Stream OpenWrite()
throw new IOException("File is currently locked for writing");
}
- lock (_sync)
+ _lock.EnterWriteLock();
+ try
{
if (_currentReaders > 0)
{
@@ -838,7 +855,8 @@ public Stream OpenWrite()
MemoryStream target = new();
return new DisposingStream(target, () =>
{
- lock (_sync)
+ _lock.EnterWriteLock();
+ try
{
--_currentWriters;
_data = new byte[target.Length];
@@ -846,8 +864,16 @@ public Stream OpenWrite()
_ = target.Read(_data, 0, _data.Length);
LastWriteTimeUtc = DateTime.UtcNow;
}
+ finally
+ {
+ _lock.ExitWriteLock();
+ }
});
}
+ finally
+ {
+ _lock.ExitWriteLock();
+ }
}
}