diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj index f3a0fefb2a..b4aa55b1c0 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj @@ -17,6 +17,7 @@ + diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/AbpVirtualFileSystemOptions.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/AbpVirtualFileSystemOptions.cs index c4a4d203d2..aff1aee4e9 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/AbpVirtualFileSystemOptions.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/AbpVirtualFileSystemOptions.cs @@ -3,7 +3,7 @@ public class AbpVirtualFileSystemOptions { public VirtualFileSetList FileSets { get; } - + public AbpVirtualFileSystemOptions() { FileSets = new VirtualFileSetList(); diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs similarity index 81% rename from framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs rename to framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs index d2a0556527..ae0acafe09 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedFileSet.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs @@ -8,7 +8,7 @@ using Microsoft.Extensions.FileProviders; namespace Volo.Abp.VirtualFileSystem.Embedded { - public class EmbeddedFileSet : IVirtualFileSet + public class AbpEmbeddedFileProvider : DictionaryBasedFileProvider { [NotNull] public Assembly Assembly { get; } @@ -16,19 +16,22 @@ namespace Volo.Abp.VirtualFileSystem.Embedded [CanBeNull] public string BaseNamespace { get; } - [CanBeNull] - public string BaseFolderInProject { get; } + protected override IDictionary Files => _files.Value; + private readonly Lazy> _files; - public EmbeddedFileSet( + public AbpEmbeddedFileProvider( [NotNull] Assembly assembly, - [CanBeNull] string baseNamespace = null, - [CanBeNull] string baseFolderInProject = null) + [CanBeNull] string baseNamespace = null) { Check.NotNull(assembly, nameof(assembly)); Assembly = assembly; BaseNamespace = baseNamespace; - BaseFolderInProject = baseFolderInProject; + + _files = new Lazy>( + CreateFiles, + true + ); } public void AddFiles(Dictionary files) @@ -127,5 +130,17 @@ namespace Volo.Abp.VirtualFileSystem.Embedded return filePath.Substring(filePath.LastIndexOf("/", StringComparison.Ordinal) + 1); } + + protected override string NormalizePath(string subpath) + { + return VirtualFilePathHelper.NormalizePath(subpath); + } + + private Dictionary CreateFiles() + { + var files = new Dictionary(StringComparer.OrdinalIgnoreCase); + AddFiles(files); + return files; + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedVirtualFileSetInfo.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedVirtualFileSetInfo.cs new file mode 100644 index 0000000000..9f4d87d783 --- /dev/null +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedVirtualFileSetInfo.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using Microsoft.Extensions.FileProviders; + +namespace Volo.Abp.VirtualFileSystem.Embedded +{ + public class EmbeddedVirtualFileSetInfo : VirtualFileSetInfo + { + public Assembly Assembly { get; } + + public string BaseFolder { get; } + + public EmbeddedVirtualFileSetInfo( + IFileProvider fileProvider, + Assembly assembly, + string baseFolder = null) + : base(fileProvider) + { + Assembly = assembly; + BaseFolder = baseFolder; + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IVirtualFileSet.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IVirtualFileSet.cs deleted file mode 100644 index 1880165d02..0000000000 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/IVirtualFileSet.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections.Generic; -using Microsoft.Extensions.FileProviders; - -namespace Volo.Abp.VirtualFileSystem -{ - public interface IVirtualFileSet - { - void AddFiles(Dictionary files); - } -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Physical/PhysicalVirtualFileSetInfo.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Physical/PhysicalVirtualFileSetInfo.cs new file mode 100644 index 0000000000..525fa178d6 --- /dev/null +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Physical/PhysicalVirtualFileSetInfo.cs @@ -0,0 +1,19 @@ +using JetBrains.Annotations; +using Microsoft.Extensions.FileProviders; + +namespace Volo.Abp.VirtualFileSystem.Physical +{ + public class PhysicalVirtualFileSetInfo : VirtualFileSetInfo + { + public string Root { get; } + + public PhysicalVirtualFileSetInfo( + [NotNull] IFileProvider fileProvider, + [NotNull] string root + ) + : base(fileProvider) + { + Root = Check.NotNullOrWhiteSpace(root, nameof(root)); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFilePathHelper.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFilePathHelper.cs index 03f851a7e3..47900d5aa9 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFilePathHelper.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFilePathHelper.cs @@ -6,8 +6,6 @@ namespace Volo.Abp.VirtualFileSystem { internal static class VirtualFilePathHelper { - //TODO: Optimize this class! - public static string NormalizePath(string fullPath) { if (fullPath.Equals("/", StringComparison.Ordinal)) diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileProvider.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileProvider.cs index 5f90ef7925..eb4cd4e415 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileProvider.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileProvider.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.Options; @@ -28,6 +27,11 @@ namespace Volo.Abp.VirtualFileSystem public virtual IDirectoryContents GetDirectoryContents(string subpath) { + if (subpath == "") + { + subpath = "/"; + } + return _hybridFileProvider.GetDirectoryContents(subpath); } @@ -42,52 +46,12 @@ namespace Volo.Abp.VirtualFileSystem fileProviders.Add(dynamicFileProvider); - if (_options.FileSets.PhysicalPaths.Any()) + foreach (var fileSet in _options.FileSets.AsEnumerable().Reverse()) { - fileProviders.AddRange( - _options.FileSets.PhysicalPaths - .Select(rootPath => new PhysicalFileProvider(rootPath)) - .Reverse() - ); + fileProviders.Add(fileSet.FileProvider); } - fileProviders.Add(new InternalVirtualFileProvider(_options)); - return new CompositeFileProvider(fileProviders); } - - protected class InternalVirtualFileProvider : DictionaryBasedFileProvider - { - protected override IDictionary Files => _files.Value; - - private readonly AbpVirtualFileSystemOptions _options; - private readonly Lazy> _files; - - public InternalVirtualFileProvider(AbpVirtualFileSystemOptions options) - { - _options = options; - _files = new Lazy>( - CreateFiles, - true - ); - } - - private Dictionary CreateFiles() - { - var files = new Dictionary(StringComparer.OrdinalIgnoreCase); - - foreach (var set in _options.FileSets) - { - set.AddFiles(files); - } - - return files; - } - - protected override string NormalizePath(string subpath) - { - return VirtualFilePathHelper.NormalizePath(subpath); - } - } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetInfo.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetInfo.cs new file mode 100644 index 0000000000..694729f02a --- /dev/null +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetInfo.cs @@ -0,0 +1,15 @@ +using JetBrains.Annotations; +using Microsoft.Extensions.FileProviders; + +namespace Volo.Abp.VirtualFileSystem +{ + public class VirtualFileSetInfo + { + public IFileProvider FileProvider { get; } + + public VirtualFileSetInfo([NotNull] IFileProvider fileProvider) + { + FileProvider = Check.NotNull(fileProvider, nameof(fileProvider)); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetList.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetList.cs index 2ddd0ff3a4..371f8350d8 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetList.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetList.cs @@ -2,13 +2,8 @@ namespace Volo.Abp.VirtualFileSystem { - public class VirtualFileSetList : List + public class VirtualFileSetList : List { - public List PhysicalPaths { get; } - - public VirtualFileSetList() - { - PhysicalPaths = new List(); - } + } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs index 399f76f408..f1ca9749ea 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs @@ -1,44 +1,90 @@ using System; using System.IO; -using System.Linq; +using System.Reflection; using JetBrains.Annotations; +using Microsoft.Extensions.FileProviders; +using Microsoft.Extensions.FileProviders.Physical; using Volo.Abp.VirtualFileSystem.Embedded; +using Volo.Abp.VirtualFileSystem.Physical; namespace Volo.Abp.VirtualFileSystem { public static class VirtualFileSetListExtensions { - public static void AddEmbedded([NotNull] this VirtualFileSetList list, [CanBeNull] string baseNamespace = null, string baseFolderInProject = null) + public static void AddEmbedded( + [NotNull] this VirtualFileSetList list, + [CanBeNull] string baseNamespace = null, + [CanBeNull] string baseFolder = null) { Check.NotNull(list, nameof(list)); - list.Add( - new EmbeddedFileSet( - typeof(T).Assembly, - baseNamespace, - baseFolderInProject - ) + var assembly = typeof(T).Assembly; + var fileProvider = CreateFileProvider( + assembly, + baseNamespace, + baseFolder ); + + list.Add(new EmbeddedVirtualFileSetInfo(fileProvider, assembly, baseFolder)); } - public static void ReplaceEmbeddedByPhysical([NotNull] this VirtualFileSetList list, [NotNull] string pyhsicalPath) + public static void AddPhysical( + [NotNull] this VirtualFileSetList list, + [NotNull] string root, + ExclusionFilters exclusionFilters = ExclusionFilters.Sensitive) { Check.NotNull(list, nameof(list)); - Check.NotNull(pyhsicalPath, nameof(pyhsicalPath)); + Check.NotNullOrWhiteSpace(root, nameof(root)); - var assembly = typeof(T).Assembly; - var embeddedFileSets = list.OfType().Where(fs => fs.Assembly == assembly).ToList(); + var fileProvider = new PhysicalFileProvider(root, exclusionFilters); + list.Add(new PhysicalVirtualFileSetInfo(fileProvider, root)); + } + + private static IFileProvider CreateFileProvider( + [NotNull] Assembly assembly, + [CanBeNull] string baseNamespace = null, + [CanBeNull] string baseFolder = null) + { + Check.NotNull(assembly, nameof(assembly)); - foreach (var embeddedFileSet in embeddedFileSets) + var info = assembly.GetManifestResourceInfo("Microsoft.Extensions.FileProviders.Embedded.Manifest.xml"); + + if (info == null) { - list.Remove(embeddedFileSet); + return new AbpEmbeddedFileProvider(assembly, baseNamespace); + } + + if (baseFolder == null) + { + return new ManifestEmbeddedFileProvider(assembly); + } - if (!embeddedFileSet.BaseFolderInProject.IsNullOrEmpty()) + return new ManifestEmbeddedFileProvider(assembly, baseFolder); + } + + public static void ReplaceEmbeddedByPhysical( + [NotNull] this VirtualFileSetList fileSets, + [NotNull] string physicalPath) + { + Check.NotNull(fileSets, nameof(fileSets)); + Check.NotNullOrWhiteSpace(physicalPath, nameof(physicalPath)); + + var assembly = typeof(T).Assembly; + + for (var i = 0; i < fileSets.Count; i++) + { + if (fileSets[i] is EmbeddedVirtualFileSetInfo embeddedVirtualFileSet && + embeddedVirtualFileSet.Assembly == assembly) { - pyhsicalPath = Path.Combine(pyhsicalPath, embeddedFileSet.BaseFolderInProject); - } + var thisPath = physicalPath; - list.PhysicalPaths.Add(pyhsicalPath); + if (!embeddedVirtualFileSet.BaseFolder.IsNullOrEmpty()) + { + thisPath = Path.Combine(thisPath, embeddedVirtualFileSet.BaseFolder); + } + + fileSets[i] = new PhysicalVirtualFileSetInfo(new PhysicalFileProvider(thisPath), thisPath); + } } } } diff --git a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj index 9f8f904aa4..bcb9dcbf74 100644 --- a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj +++ b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj @@ -4,6 +4,7 @@ netcoreapp3.1 + true @@ -15,6 +16,7 @@ + diff --git a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/MyResources/js/my{test}.2.9.min.js b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/MyResources/js/my{test}.2.9.min.js new file mode 100644 index 0000000000..1c74f24545 --- /dev/null +++ b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/MyResources/js/my{test}.2.9.min.js @@ -0,0 +1 @@ +//my{test}.2.9.min.js-content \ No newline at end of file diff --git a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/VirtualFileProvider_Tests.cs b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/VirtualFileProvider_Tests.cs index 2243d9a11a..aae01ff912 100644 --- a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/VirtualFileProvider_Tests.cs +++ b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo/Abp/VirtualFileSystem/VirtualFileProvider_Tests.cs @@ -1,5 +1,4 @@ -using System; -using System.IO; +using System.IO; using System.Linq; using System.Text; using Microsoft.Extensions.DependencyInjection; @@ -34,6 +33,22 @@ namespace Volo.Abp.VirtualFileSystem Encoding.UTF8.GetString(stream.GetAllBytes()).ShouldBe("//jquery-3-1-1-min.js-contents"); } } + + [Fact] + public void Should_Define_And_Get_Embedded_Resources_With_Special_Chars() + { + //Act + var resource = _virtualFileProvider.GetFileInfo("/js/my{test}.2.9.min.js"); + + //Assert + resource.ShouldNotBeNull(); + resource.Exists.ShouldBeTrue(); + + using (var stream = resource.CreateReadStream()) + { + Encoding.UTF8.GetString(stream.GetAllBytes()).ShouldBe("//my{test}.2.9.min.js-content"); + } + } [Fact] public void Should_Define_And_Get_Embedded_Directory_Contents() @@ -45,7 +60,9 @@ namespace Volo.Abp.VirtualFileSystem contents.Exists.ShouldNotBeNull(); var contentList = contents.ToList(); + contentList.ShouldContain(x => x.Name == "jquery-3-1-1-min.js"); + contentList.ShouldContain(x => x.Name == "my{test}.2.9.min.js"); } [Theory] @@ -70,7 +87,9 @@ namespace Volo.Abp.VirtualFileSystem { Configure(options => { - options.FileSets.AddEmbedded("Volo.Abp.VirtualFileSystem.MyResources"); + options.FileSets.AddEmbedded( + baseFolder: "/Volo/Abp/VirtualFileSystem/MyResources" + ); }); } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj index f0b3cc8b33..df627353c0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj @@ -5,8 +5,9 @@ netstandard2.0 MyCompanyName.MyProjectName + true - + @@ -23,4 +24,8 @@ + + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs index 340d28ac3a..7fb1e30637 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs @@ -35,7 +35,7 @@ namespace MyCompanyName.MyProjectName { Configure(options => { - options.FileSets.AddEmbedded("MyCompanyName.MyProjectName"); + options.FileSets.AddEmbedded(); }); Configure(options => diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs index caa21c9706..1da9619803 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs @@ -77,8 +77,6 @@ namespace MyCompanyName.MyProjectName { Configure(options => { - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain.Shared")); - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain")); // options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.UI", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.AspNetCore.Mvc.UI", Path.DirectorySeparatorChar))); @@ -87,6 +85,8 @@ namespace MyCompanyName.MyProjectName options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}modules{0}account{0}src{0}Volo.Abp.Account.Web", Path.DirectorySeparatorChar))); // + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain.Shared")); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain")); }); } diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/tr.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/tr.json index 2b48193353..8decb5134e 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/tr.json +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/Localization/MyProjectName/tr.json @@ -1,6 +1,6 @@ { "culture": "tr", "texts": { - "ManageYourProfile": "Profil yönetimi" + "ManageYourProfile": "Profil yönetimi" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj index 3483fb41cd..526c13a2e4 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj @@ -5,12 +5,17 @@ netstandard2.0 MyCompanyName.MyProjectName + true + + + + diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs index 384aae162a..081ccfb739 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs @@ -17,7 +17,7 @@ namespace MyCompanyName.MyProjectName { Configure(options => { - options.FileSets.AddEmbedded("MyCompanyName.MyProjectName"); + options.FileSets.AddEmbedded(); }); Configure(options =>