From 24e22c25975b36f2245ed79333b48848d0b87f24 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Thu, 5 Dec 2024 15:18:07 +0300 Subject: [PATCH 01/15] CLI: Update command should also update LeptonX Theme package versions --- .../VoloNugetPackagesVersionUpdater.cs | 31 ++++++++++++++++--- .../Version/PackageVersionCheckerService.cs | 30 +++++++++++++++--- 2 files changed, 52 insertions(+), 9 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs index 9f23645fb9..08bc6bbade 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using NuGet.Versioning; using System.IO; using System.Linq; @@ -39,6 +40,7 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency var latestVersionInfo = await _packageVersionCheckerService.GetLatestVersionOrNullAsync("Volo.Abp.Core", includeReleaseCandidates: includeReleaseCandidates); var latestReleaseCandidateVersionInfo = await _packageVersionCheckerService.GetLatestVersionOrNullAsync("Volo.Abp.Core", includeReleaseCandidates: true); var latestVersionFromMyGet = await GetLatestVersionFromMyGet("Volo.Abp.Core"); + var latestStableVersions = await _packageVersionCheckerService.GetLatestStableVersionsAsync(); async Task UpdateAsync(string filePath) { @@ -55,7 +57,8 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency latestVersionInfo.Version, latestReleaseCandidateVersionInfo.Version, latestVersionFromMyGet, - version); + version, + latestStableVersions: latestStableVersions); fs.Seek(0, SeekOrigin.Begin); fs.SetLength(0); @@ -83,6 +86,7 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency var latestVersionInfo = await _packageVersionCheckerService.GetLatestVersionOrNullAsync("Volo.Abp.Core"); var latestReleaseCandidateVersionInfo = await _packageVersionCheckerService.GetLatestVersionOrNullAsync("Volo.Abp.Core", includeReleaseCandidates: true); var latestVersionFromMyGet = await GetLatestVersionFromMyGet("Volo.Abp.Core"); + var latestStableVersions = await _packageVersionCheckerService.GetLatestStableVersionsAsync(); using (var fs = File.Open(projectPath, FileMode.Open, FileAccess.ReadWrite, FileShare.None)) { @@ -97,7 +101,8 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency latestVersionInfo.Version, latestReleaseCandidateVersionInfo.Version, latestVersionFromMyGet, - version); + version, + latestStableVersions: latestStableVersions); fs.Seek(0, SeekOrigin.Begin); fs.SetLength(0); @@ -114,13 +119,20 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency protected virtual async Task UpdateInternalAsync(string projectPath, bool includeNightlyPreviews = false, bool includeReleaseCandidates = false, bool switchToStable = false) { + var latestStableVersions = await _packageVersionCheckerService.GetLatestStableVersionsAsync(); + using (var fs = File.Open(projectPath, FileMode.Open, FileAccess.ReadWrite, FileShare.None)) { using (var sr = new StreamReader(fs, Encoding.Default, true)) { var fileContent = await sr.ReadToEndAsync(); - var updatedContent = await UpdateVoloPackagesAsync(fileContent, includeNightlyPreviews, includeReleaseCandidates, switchToStable); + var updatedContent = await UpdateVoloPackagesAsync( + fileContent, + includeNightlyPreviews, + includeReleaseCandidates, + switchToStable, + latestStableVersions: latestStableVersions); fs.Seek(0, SeekOrigin.Begin); fs.SetLength(0); @@ -153,7 +165,8 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency SemanticVersion latestNugetVersion = null, SemanticVersion latestNugetReleaseCandidateVersion = null, string latestMyGetVersion = null, - string specifiedVersion = null) + string specifiedVersion = null, + List latestStableVersions = null) { string packageId = null; @@ -206,12 +219,20 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency if (!specifiedVersion.IsNullOrWhiteSpace()) { - if (isLeptonXPackage || isStudioPackage) + var leptonXPackageVersion = latestStableVersions? + .FirstOrDefault(v => v.Version.Equals(specifiedVersion, StringComparison.InvariantCultureIgnoreCase))?.LeptonX?.Version; + + if ((isLeptonXPackage && string.IsNullOrWhiteSpace(leptonXPackageVersion)) || isStudioPackage) { Logger.LogWarning("Package: {PackageId} could not be updated. Please manually update the package version yourself to prevent version mismatches!", packageId); continue; } + if (isLeptonXPackage && !string.IsNullOrWhiteSpace(leptonXPackageVersion)) + { + specifiedVersion = leptonXPackageVersion; + } + if (await SpecifiedVersionExists(specifiedVersion, packageId)) { var specifiedSemanticVersion = SemanticVersion.Parse(specifiedVersion); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs index d5764c1c0e..316c53e01e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Net; using System.Threading.Tasks; +using JetBrains.Annotations; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.Cli.Http; @@ -111,6 +112,11 @@ public class PackageVersionCheckerService : ITransientDependency ? new LatestVersionInfo(semanticVersion, latestStableVersionResult.Message) : null; } + + public async Task> GetLatestStableVersionsAsync() + { + return await GetLatestStableVersionsInternalAsync(); + } private static ConcurrentDictionary CommercialPackagesCache { get; } = new (); @@ -225,7 +231,7 @@ public class PackageVersionCheckerService : ITransientDependency _apiKeyResult ??= await _apiKeyService.GetApiKeyOrNullAsync(); } - private async Task GetLatestStableVersionOrNullAsync() + private async Task> GetLatestStableVersionsInternalAsync() { try { @@ -241,16 +247,24 @@ public class PackageVersionCheckerService : ITransientDependency var content = await responseMessage.Content.ReadAsStringAsync(); var result = JsonSerializer.Deserialize>(content); - - return result.FirstOrDefault(x => x.Type.ToLowerInvariant() == "stable"); + return result.OrderBy(q => q.Type.ToLowerInvariant() == "stable").ThenBy(q => SemanticVersion.Parse(q.Version)).ToList(); } } catch { - return null; + return []; } } + private async Task GetLatestStableVersionOrNullAsync() + { + var latestStableVersionsResult = await GetLatestStableVersionsInternalAsync(); + + return latestStableVersionsResult.Count <= 0 + ? null + : latestStableVersionsResult.FirstOrDefault(); + } + public class NuGetSearchResultDto { public int TotalHits { get; set; } @@ -270,6 +284,11 @@ public class PackageVersionCheckerService : ITransientDependency public List Versions { get; set; } } + public class LeptonXThemeInfo + { + public string Version { get; set; } + } + public class LatestStableVersionResult { public string Version { get; set; } @@ -279,5 +298,8 @@ public class PackageVersionCheckerService : ITransientDependency public string Type { get; set; } public string Message { get; set; } + + [CanBeNull] + public LeptonXThemeInfo LeptonX { get; set; } } } From 35d0ce0d652b503e344302e44d35d7c72f1bc5e4 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Thu, 5 Dec 2024 15:21:43 +0300 Subject: [PATCH 02/15] Update latest-versions.json --- latest-versions.json | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/latest-versions.json b/latest-versions.json index 0eff05a891..e2c60800a3 100644 --- a/latest-versions.json +++ b/latest-versions.json @@ -1,8 +1,29 @@ [ + { + "version": "9.0.1", + "releaseDate": "", + "type": "stable", + "message": "", + "leptonx": { + "version": "4.0.1" + } + }, + { + "version": "9.0.0", + "releaseDate": "", + "type": "stable", + "message": "", + "leptonx": { + "version": "4.0.0" + } + }, { "version": "8.3.1", "releaseDate": "", "type": "stable", - "message": "" + "message": "", + "leptonx": { + "version": "3.3.1" + } } ] \ No newline at end of file From 3968c799f68b921115e6610a0672aa34af754d95 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Thu, 5 Dec 2024 15:38:52 +0300 Subject: [PATCH 03/15] Update VoloNugetPackagesVersionUpdater.cs --- .../VoloNugetPackagesVersionUpdater.cs | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs index 08bc6bbade..4ece393913 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs @@ -228,28 +228,30 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency continue; } - if (isLeptonXPackage && !string.IsNullOrWhiteSpace(leptonXPackageVersion)) + var isLeptonXPackageWithVersion = isLeptonXPackage && !string.IsNullOrWhiteSpace(leptonXPackageVersion); + + if (isLeptonXPackageWithVersion || await SpecifiedVersionExists(specifiedVersion, packageId)) { - specifiedVersion = leptonXPackageVersion; + TryUpdatingPackage(isLeptonXPackageWithVersion ? leptonXPackageVersion : specifiedVersion); } - - if (await SpecifiedVersionExists(specifiedVersion, packageId)) + else { - var specifiedSemanticVersion = SemanticVersion.Parse(specifiedVersion); + Logger.LogWarning("Package \"{PackageId}\" specified version v{SpecifiedVersion} does not exist!", packageId, specifiedVersion); + } + + void TryUpdatingPackage(string versionToUpdate) + { + var specifiedSemanticVersion = SemanticVersion.Parse(versionToUpdate); if (specifiedSemanticVersion > currentSemanticVersion) { - Logger.LogInformation("Updating package \"{PackageId}\" from v{CurrentVersion} to v{SpecifiedVersion}", packageId, currentVersion, specifiedVersion); - versionAttribute.Value = specifiedVersion; + Logger.LogInformation("Updating package \"{PackageId}\" from v{CurrentVersion} to v{SpecifiedVersion}", packageId, currentVersion, versionToUpdate); + versionAttribute.Value = versionToUpdate; } else { - Logger.LogWarning("Unable to update package \"{PackageId}\" version v{CurrentVersion} to v{SpecifiedVersion}", packageId, currentVersion, specifiedVersion); + Logger.LogWarning("Unable to update package \"{PackageId}\" version v{CurrentVersion} to v{SpecifiedVersion}", packageId, currentVersion, versionToUpdate); } } - else - { - Logger.LogWarning("Package \"{PackageId}\" specified version v{SpecifiedVersion} does not exist!", packageId, specifiedVersion); - } } else { @@ -273,7 +275,7 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency } else { - latestVersion = latestMyGetVersion == null ? await GetLatestVersionFromMyGet(packageId) : latestMyGetVersion; + latestVersion = latestMyGetVersion ?? await GetLatestVersionFromMyGet(packageId); } if(latestVersion == null) From cc5711cad043237806c739195da67a1198e8ecf8 Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Thu, 5 Dec 2024 16:09:35 +0300 Subject: [PATCH 04/15] Update studio docs for v0.9.15 --- docs/en/studio/release-notes.md | 7 +++++++ docs/en/studio/version-mapping.md | 1 + 2 files changed, 8 insertions(+) diff --git a/docs/en/studio/release-notes.md b/docs/en/studio/release-notes.md index 6d5016d111..282d038c5e 100644 --- a/docs/en/studio/release-notes.md +++ b/docs/en/studio/release-notes.md @@ -2,6 +2,13 @@ This document contains **brief release notes** for each ABP Studio release. Release notes only include **major features** and **visible enhancements**. Therefore, they don't include all the development done in the related version. +## 0.9.15 (2024-12-05) + +* Upgraded templates to version `9.0.1`. +* Fixed problems in the microservice service_nolayers template. +* Fixed microservice angular template for wrong file-management module reference. +* Fixed added extra lines in the hosts.txt file. + ## 0.9.14 (2024-12-03) * Refactored `dotnet watch` command in solution runner. diff --git a/docs/en/studio/version-mapping.md b/docs/en/studio/version-mapping.md index 428282ea48..fe91ffe89a 100644 --- a/docs/en/studio/version-mapping.md +++ b/docs/en/studio/version-mapping.md @@ -4,6 +4,7 @@ This document provides a general overview of the relationship between various ve | **ABP Studio Version** | **ABP Version of Startup Template** | |------------------------|---------------------------| +| 0.9.15 | 9.0.1 | | 0.9.9 to 0.9.14 | 9.0.0 | | 0.9.8 | 8.3.4 | | 0.9.5 to 0.9.7 | 8.3.3 | From 0c97cfd0e8d02c193a78bb38a22753791114ad5a Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Thu, 5 Dec 2024 18:13:18 +0300 Subject: [PATCH 05/15] Ensure `.abp/cli` folder created when executing login command --- .../src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Auth/AuthService.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Auth/AuthService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Auth/AuthService.cs index 8695c0c418..333ae59e3f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Auth/AuthService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Auth/AuthService.cs @@ -85,7 +85,11 @@ public class AuthService : IAuthService, ITransientDependency } var accessToken = await AuthenticationService.GetAccessTokenAsync(configuration); - + + if (!Directory.Exists(CliPaths.Root)) + { + Directory.CreateDirectory(CliPaths.Root); + } File.WriteAllText(CliPaths.AccessToken, accessToken, Encoding.UTF8); } From 1dd5372f0a835a576f34559c93220c6cb40abd05 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 6 Dec 2024 11:40:49 +0800 Subject: [PATCH 06/15] Fix Blazor - Permissions are not saved if you filtered permissions --- .../Components/PermissionManagementModal.razor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs index 50e6035b9b..a0b7de8c07 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs @@ -154,7 +154,7 @@ public partial class PermissionManagementModal var updateDto = new UpdatePermissionsDto { - Permissions = _groups + Permissions = _allGroups .SelectMany(g => g.Permissions) .Select(p => new UpdatePermissionDto { IsGranted = p.IsGranted, Name = p.Name }) .ToArray() From 6a008282d3fef6ff6b44e2cddb2e4ba1ad7a5404 Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Fri, 6 Dec 2024 11:31:17 +0300 Subject: [PATCH 07/15] Add `UseStaticFilesForPatterns` extension method to `IApplicationBuilder` --- .../AbpApplicationBuilderExtensions.cs | 20 ++++++++++ .../StaticFiles/AbpStaticFileProvider.cs | 40 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/StaticFiles/AbpStaticFileProvider.cs diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs index bd653faf55..f1dd6d4d6e 100644 --- a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs @@ -15,6 +15,7 @@ using Volo.Abp.AspNetCore.Auditing; using Volo.Abp.AspNetCore.ExceptionHandling; using Volo.Abp.AspNetCore.Security; using Volo.Abp.AspNetCore.Security.Claims; +using Volo.Abp.AspNetCore.StaticFiles; using Volo.Abp.AspNetCore.Tracing; using Volo.Abp.AspNetCore.Uow; using Volo.Abp.AspNetCore.VirtualFileSystem; @@ -125,6 +126,25 @@ public static class AbpApplicationBuilderExtensions { return app.UseMiddleware(); } + + /// + /// Configures the application to serve static files that match the specified filename patterns. + /// + /// The used to configure the application pipeline. + /// The file name patterns to include when serving static files (e.g., "appsettings*.json"). + /// Supports glob patterns. See Glob patterns documentation. + /// + /// The + /// The instance. + public static IApplicationBuilder UseStaticFilesForPatterns(this IApplicationBuilder app, string[] includeFileNamePatterns, IFileProvider fileProvider) + { + app.UseStaticFiles(new StaticFileOptions + { + FileProvider = new AbpStaticFileProvider(includeFileNamePatterns, fileProvider) + }); + + return app; + } /// /// MapAbpStaticAssets is used to serve the files from the abp virtual file system embedded resources(js/css) and call the MapStaticAssets. diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/StaticFiles/AbpStaticFileProvider.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/StaticFiles/AbpStaticFileProvider.cs new file mode 100644 index 0000000000..48a2c36d96 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/StaticFiles/AbpStaticFileProvider.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.IO; +using Microsoft.Extensions.FileProviders; +using Microsoft.Extensions.FileSystemGlobbing; +using Microsoft.Extensions.Primitives; + +namespace Volo.Abp.AspNetCore.StaticFiles; + +public class AbpStaticFileProvider : IFileProvider +{ + private readonly Matcher _matcher; + private readonly IFileProvider _fileProvider; + + /// The file provider to be used to get the files. + /// The file names to get from the file provider. Supports glob patterns. See https://learn.microsoft.com/en-us/dotnet/core/extensions/file-globbing. + public AbpStaticFileProvider(IReadOnlyList fileNames, IFileProvider fileProvider) + { + _fileProvider = fileProvider; + _matcher = new Matcher(StringComparison.OrdinalIgnoreCase); + _matcher.AddIncludePatterns(fileNames); + } + + public IDirectoryContents GetDirectoryContents(string subpath) + { + return new NotFoundDirectoryContents(); + } + + public IFileInfo GetFileInfo(string subpath) + { + return _matcher.Match(Path.GetFileName(subpath)).HasMatches ? + _fileProvider.GetFileInfo(subpath) : + new NotFoundFileInfo(subpath); + } + + public IChangeToken Watch(string filter) + { + return NullChangeToken.Singleton; + } +} \ No newline at end of file From eec8e7585524e4512476af1a83939f6a415a9338 Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Fri, 6 Dec 2024 11:34:23 +0300 Subject: [PATCH 08/15] Rename parameter --- .../Abp/AspNetCore/StaticFiles/AbpStaticFileProvider.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/StaticFiles/AbpStaticFileProvider.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/StaticFiles/AbpStaticFileProvider.cs index 48a2c36d96..f7893932f2 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/StaticFiles/AbpStaticFileProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/StaticFiles/AbpStaticFileProvider.cs @@ -13,12 +13,14 @@ public class AbpStaticFileProvider : IFileProvider private readonly IFileProvider _fileProvider; /// The file provider to be used to get the files. - /// The file names to get from the file provider. Supports glob patterns. See https://learn.microsoft.com/en-us/dotnet/core/extensions/file-globbing. - public AbpStaticFileProvider(IReadOnlyList fileNames, IFileProvider fileProvider) + /// The file name patterns to include when serving static files (e.g., "appsettings*.json"). + /// Supports glob patterns. See Glob patterns documentation. + /// + public AbpStaticFileProvider(IReadOnlyList fileNamePatterns, IFileProvider fileProvider) { _fileProvider = fileProvider; _matcher = new Matcher(StringComparison.OrdinalIgnoreCase); - _matcher.AddIncludePatterns(fileNames); + _matcher.AddIncludePatterns(fileNamePatterns); } public IDirectoryContents GetDirectoryContents(string subpath) From 446d253674b41e61cbebf956ad32cf20e8931ac8 Mon Sep 17 00:00:00 2001 From: Enis Necipoglu Date: Fri, 6 Dec 2024 11:39:13 +0300 Subject: [PATCH 09/15] Update MAUI adb documentation --- docs/en/framework/ui/maui/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/en/framework/ui/maui/index.md b/docs/en/framework/ui/maui/index.md index 69f9518e92..573278a060 100644 --- a/docs/en/framework/ui/maui/index.md +++ b/docs/en/framework/ui/maui/index.md @@ -40,6 +40,9 @@ Open a command line terminal and run the `adb reverse` command to expose a port > You should replace "44305" with the real port. > You should run the command after starting the emulator. +> If you don't have a separate installation of Android Debug Bridge, you can open it from **Visual Studio** by following toolbar menu `Tools` > `Android` > `Android Adb Command Prompt`. Android emulator has to be running for this operation. + + ### iOS The iOS simulator uses the host machine network. Therefore, applications running in the simulator can connect to web services running on your local machine via the machines IP address or via the localhost hostname. For example, given a local secure web service that exposes a GET operation via the /api/todoitems/ relative URI, an application running on the iOS simulator can consume the operation by sending a GET request to https://localhost:/api/todoitems/. From 41f9e0b54602ad179fbfcc899df2bd0a3bc2fb54 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 6 Dec 2024 16:59:02 +0800 Subject: [PATCH 10/15] Add a extension method that using `WebRootFileProvider`. --- .../Builder/AbpApplicationBuilderExtensions.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs index f1dd6d4d6e..3cada3bf46 100644 --- a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs @@ -126,9 +126,22 @@ public static class AbpApplicationBuilderExtensions { return app.UseMiddleware(); } - + + /// + /// Configures the application to serve static files that match the specified filename patterns with the WebRootFileProvider of the application. + /// + /// The used to configure the application pipeline. + /// The file name patterns to include when serving static files (e.g., "appsettings*.json"). + /// Supports glob patterns. See Glob patterns documentation. + /// + /// The instance. + public static IApplicationBuilder UseStaticFilesForPatterns(this IApplicationBuilder app, params string[] includeFileNamePatterns) + { + return UseStaticFilesForPatterns(app, includeFileNamePatterns, app.ApplicationServices.GetRequiredService().WebRootFileProvider); + } + /// - /// Configures the application to serve static files that match the specified filename patterns. + /// Configures the application to serve static files that match the specified filename patterns with the specified file provider. /// /// The used to configure the application pipeline. /// The file name patterns to include when serving static files (e.g., "appsettings*.json"). From 088172f9f08e6d94810bc5f86e0eed100f4df616 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 6 Dec 2024 15:23:03 +0300 Subject: [PATCH 11/15] Update index.md --- docs/en/cli/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/cli/index.md b/docs/en/cli/index.md index 96112099c3..9fd7277164 100644 --- a/docs/en/cli/index.md +++ b/docs/en/cli/index.md @@ -227,15 +227,15 @@ For more samples, go to [ABP CLI Create Solution Samples](new-command-samples.md * `--no-kubernetes-configuration` or `-nkc`: Skips the Kubernetes configuration files. * `--no-social-logins` or `-nsl`: Skipts the social login configuration. * `--no-tests` or `-ntp`: Does not add test projects. -* *Module Options*: You can skip some modules if you don't want to add them to your solution (*Available for* ***Team*** *or higher licenses*). Available commands: +* *Module Options*: You can skip some modules if you don't want to add them to your solution, or include if you want them (*Available for* ***Team*** *or higher licenses*). Available commands: * `-no-saas`: Skips the Saas module. * `-no-gdpr`: Skips the GDPR module. * `-no-openiddict-admin-ui`: Skips the OpenIddict Admin UI module. * `-no-audit-logging`: Skips the Audit Logging module. - * `-no-file-management`: Skips the File Management module. * `-no-language-management`: Skips the Language Management module. * `-no-text-template-management`: Skips the Text Template Management module. - * `-no-chat`: Skips the Chat module. + * `-file-management`: Includes the File Management module. + * `-chat`: Includes the Chat module. * `--legacy`: Generates a legacy solution. * `trust-version`: Trusts the user's version and does not check if the version exists or not. If the template with the given version is found in the cache, it will be used, otherwise throws an exception. From 36cc6734ae4ceaea9740818dc1da4a172cb23c01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 6 Dec 2024 16:13:33 +0300 Subject: [PATCH 12/15] Add redirection info --- .../microservice/guides/add-new-microservice.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/en/solution-templates/microservice/guides/add-new-microservice.md b/docs/en/solution-templates/microservice/guides/add-new-microservice.md index 12c8b527e8..f68f315dd7 100644 --- a/docs/en/solution-templates/microservice/guides/add-new-microservice.md +++ b/docs/en/solution-templates/microservice/guides/add-new-microservice.md @@ -1,3 +1 @@ -# ABP Studio Microservice Solution: Adding New Microservices - -This document is planned to be written later. \ No newline at end of file +> This document is [moved to here](../adding-new-microservices.md). \ No newline at end of file From 44805ec4e6981fb581ec7577bd4d2ff3091618e3 Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 8 Dec 2024 08:32:27 +0800 Subject: [PATCH 13/15] Update Directory.Packages.props --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index fd0d419fd9..30573f1460 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -114,7 +114,7 @@ - + From 6434115df5ec4cf4ab8e7f0a61c8f25fcf0cc215 Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 8 Dec 2024 08:34:36 +0800 Subject: [PATCH 14/15] Upgrade `Oracle.EntityFrameworkCore` to `9.23.60` --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index fd0d419fd9..c2fe2ae947 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -125,7 +125,7 @@ - + From 7e33a5e5e11ba7f37e8d8e9b7b63d4438cce778a Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 8 Dec 2024 08:35:46 +0800 Subject: [PATCH 15/15] Update Volo.Abp.EntityFrameworkCore.Oracle.csproj --- .../Volo.Abp.EntityFrameworkCore.Oracle.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj index 2948ef0cfb..8f14308ed6 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj @@ -21,7 +21,6 @@ -