From 8d1c939c83499ab2178d47718f0657c8863ff9dd Mon Sep 17 00:00:00 2001 From: lindexi Date: Mon, 17 Aug 2020 19:27:57 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E5=86=99=E5=85=A5=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dotnetCampus.SourceYard/Assets/Current/Core.targets | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets index c1a5bf8..e0ad3ff 100644 --- a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets +++ b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets @@ -35,8 +35,13 @@ $(SourcePackingDirectory)PackageReferenceVersionFile.txt $(SourcePackingDirectory)SourceProjectPackageFile.txt $(SourcePackingDirectory)SourceYardPackageReferenceFile.txt + $(SourcePackingDirectory)SourceYardCompilePackageFile.txt + + <_SourceYardCompilePackage Include="%(SourceYardCompile.Identity)|%(SourceYardCompile.SourcePackagePath)"/> + + --Authors "$(Authors)" @@ -95,6 +100,8 @@ + + From b91017fe3d1085b1085d5b2abddf47073049a9da Mon Sep 17 00:00:00 2001 From: lindexi Date: Mon, 17 Aug 2020 19:50:03 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E9=87=8D=E5=86=99=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dotnetCampus.SourceYard/Assets/Current/Core.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets index e0ad3ff..205d8e3 100644 --- a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets +++ b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets @@ -101,7 +101,7 @@ - + From 72a2592dee83b7e681a96f3924e0a23656802e9e Mon Sep 17 00:00:00 2001 From: lindexi Date: Mon, 17 Aug 2020 21:56:56 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Current/Core.targets | 207 +++++++++--------- 1 file changed, 105 insertions(+), 102 deletions(-) diff --git a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets index c1a5bf8..7afba1b 100644 --- a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets +++ b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets @@ -1,122 +1,125 @@  - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - - - - - - - <_PackageReferenceVersion - Include="Name='%(PackageReference.Identity)' Version='%(PackageReference.Version)' PrivateAssets='%(PackageReference.PrivateAssets)'"> - - - - - - $(IntermediateOutputPath)SourcePacking\ - - $(SourcePackingDirectory)CompileFile.txt - $(SourcePackingDirectory)ResourceFile.txt - $(SourcePackingDirectory)ContentFile.txt - $(SourcePackingDirectory)NoneFile.txt - $(SourcePackingDirectory)EmbeddedResourceFile.txt - $(SourcePackingDirectory)PageFile.txt - $(SourcePackingDirectory)ApplicationDefinitionFile.txt - - $(SourcePackingDirectory)DescriptionFile.txt - $(SourcePackingDirectory)CopyrightFile.txt - $(SourcePackingDirectory)PackageReleaseNotesFile.txt - - $(SourcePackingDirectory)PackageReferenceVersionFile.txt - $(SourcePackingDirectory)SourceProjectPackageFile.txt - $(SourcePackingDirectory)SourceYardPackageReferenceFile.txt + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - - --Authors "$(Authors)" - - + + + + + <_PackageReferenceVersion + Include="Name='%(PackageReference.Identity)' Version='%(PackageReference.Version)' PrivateAssets='%(PackageReference.PrivateAssets)'"> + + + + + + + + $(IntermediateOutputPath)SourcePacking\ + + $(SourcePackingDirectory)CompileFile.txt + $(SourcePackingDirectory)ResourceFile.txt + $(SourcePackingDirectory)ContentFile.txt + $(SourcePackingDirectory)NoneFile.txt + $(SourcePackingDirectory)EmbeddedResourceFile.txt + $(SourcePackingDirectory)PageFile.txt + $(SourcePackingDirectory)ApplicationDefinitionFile.txt + + $(SourcePackingDirectory)DescriptionFile.txt + $(SourcePackingDirectory)CopyrightFile.txt + $(SourcePackingDirectory)PackageReleaseNotesFile.txt + + $(SourcePackingDirectory)PackageReferenceVersionFile.txt + $(SourcePackingDirectory)SourceProjectPackageFile.txt + $(SourcePackingDirectory)SourceYardPackageReferenceFile.txt + + + + + --Authors "$(Authors)" + + - --PackageLicenseUrl "$(PackageLicenseUrl) " + --PackageLicenseUrl "$(PackageLicenseUrl) " - --CopyrightFile "$(CopyrightFile)" + --CopyrightFile "$(CopyrightFile)" - -v $(PackageVersion) + -v $(PackageVersion) - --DescriptionFile "$(DescriptionFile) " + --DescriptionFile "$(DescriptionFile) " - --Title "$(Title)" - --Owner "$(Owner)" - --PackageTags "$(PackageTags) " - --PackageReleaseNotesFile $(PackageReleaseNotesFile) - --PackageId "$(PackageId) " + --Title "$(Title)" + --Owner "$(Owner)" + --PackageTags "$(PackageTags) " + --PackageReleaseNotesFile $(PackageReleaseNotesFile) + --PackageId "$(PackageId) " - -p "$(MSBuildProjectFullPath) " - -i "$(SourcePackingDirectory)Package " - -n "$(PackageOutputPath) " - -n "$(OutputPath) " - --PackageReferenceVersion "$(PackageReferenceVersionFile)" + -p "$(MSBuildProjectFullPath) " + -i "$(SourcePackingDirectory)Package " + -n "$(PackageOutputPath) " + -n "$(OutputPath) " + --PackageReferenceVersion "$(PackageReferenceVersionFile)" - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(CleanDependsOn);_SourceYardClean - - - - <_SourcePackingDirectory>$(IntermediateOutputPath)SourcePacking\ + $(CleanDependsOn);_SourceYardClean - - - - - + + + <_SourcePackingDirectory>$(IntermediateOutputPath)SourcePacking\ + + + + + + + \ No newline at end of file From 0543012706d031c3fcf5cdff7b7dc0405d7337b9 Mon Sep 17 00:00:00 2001 From: lindexi Date: Mon, 17 Aug 2020 21:59:33 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dotnetCampus.SourceYard/Assets/Current/Core.targets | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets index 205d8e3..59e8ba8 100644 --- a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets +++ b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets @@ -16,6 +16,7 @@ + $(IntermediateOutputPath)SourcePacking\ @@ -74,6 +75,7 @@ + @@ -104,6 +106,7 @@ + From fb34b55edb64f52687895b2ad6c03837b2418b1d Mon Sep 17 00:00:00 2001 From: lindexi Date: Tue, 18 Aug 2020 09:57:13 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/Version.props | 2 +- .../Context/PackagedProjectFile.cs | 55 ++++++++++++++----- .../Context/SourceYardPackageFile.cs | 26 +++++++++ src/dotnetCampus.SourceYard/Packer.cs | 45 +++++++-------- .../Utils/BuildProps.cs | 32 ++++++++++- .../Utils/FileSystem.cs | 11 ++-- .../Utils/ItemGroupElement.cs | 18 ++++-- 7 files changed, 140 insertions(+), 49 deletions(-) create mode 100644 src/dotnetCampus.SourceYard/Context/SourceYardPackageFile.cs diff --git a/build/Version.props b/build/Version.props index 7007f9f..0c34e1f 100644 --- a/build/Version.props +++ b/build/Version.props @@ -1,5 +1,5 @@ - 0.1.19262-alpha + 0.1.19309-alpha diff --git a/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs b/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs index a7c6118..d785751 100644 --- a/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs +++ b/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs @@ -12,12 +12,15 @@ namespace dotnetCampus.SourceYard.Context class PackagedProjectFile { /// - public PackagedProjectFile(string compileFile, string resourceFile, string contentFile, string page, string applicationDefinition, string noneFile, string embeddedResource, string projectFolder) + public PackagedProjectFile(string compileFile, string resourceFile, string contentFile, string page, + string applicationDefinition, string noneFile, string embeddedResource, string projectFolder, + BuildProps buildProps) { _projectFolder = projectFolder; + _buildProps = buildProps; ApplicationDefinition = applicationDefinition; - CompileFileList = GetFileList(compileFile); + CompileFileList = GetSourceYardPackageFileList(compileFile, buildProps.CompileSourceYardPackageFile); ResourceFileList = GetFileList(resourceFile); ContentFileList = GetFileList(contentFile); PageList = GetFileList(page); @@ -28,46 +31,54 @@ public PackagedProjectFile(string compileFile, string resourceFile, string conte /// /// 需要做源码包的项目的编译的文件 /// - public IReadOnlyList CompileFileList { get; } + public IReadOnlyList CompileFileList { get; } /// /// 需要做源码包的项目的资源文件 /// - public IReadOnlyList ResourceFileList { get; } + public IReadOnlyList ResourceFileList { get; } /// /// 需要做源码包项目的文件 /// - public IReadOnlyList ContentFileList { get; } + public IReadOnlyList ContentFileList { get; } /// /// 需要做源码包项目的页面 /// - public IReadOnlyList PageList { get; } + public IReadOnlyList PageList { get; } /// /// 嵌入文件 /// - public IReadOnlyList EmbeddedResourceList { get; } + public IReadOnlyList EmbeddedResourceList { get; } /// /// 需要做源码包项目的文件 /// private string ApplicationDefinition { get; } - public IReadOnlyList NoneFileList { get; } + public IReadOnlyList NoneFileList { get; } - public IReadOnlyList GetAllFile() + public IReadOnlyList GetAllFile() { - return new CombineReadonlyList(CompileFileList, ResourceFileList, ContentFileList, PageList, + return new CombineReadonlyList(CompileFileList, ResourceFileList, ContentFileList, + PageList, NoneFileList, EmbeddedResourceList); } - private List GetFileList(string file) + private List GetSourceYardPackageFileList(string file, + List sourceYardPackageFileList) + { + var fileList = GetFileList(file); + return new CombineReadonlyList(sourceYardPackageFileList, fileList).Distinct(new SourceYardPackageFileEqualityComparer()).ToList(); + } + + private List GetFileList(string file) { if (string.IsNullOrEmpty(file) || !File.Exists(file)) { - return new List(); + return new List(); } var fileList = File.ReadAllLines(file).ToList(); @@ -87,7 +98,7 @@ private List GetFileList(string file) } } - return fileList; + return fileList.Select(temp => new SourceYardPackageFile(new FileInfo(temp), temp)).ToList(); } private List RemoveTempFile(List fileList) @@ -108,7 +119,8 @@ private List RemoveTempFile(List fileList) return false; }); - fileList.RemoveAll(temp => IgnoreFileEndList.Any(t => temp.EndsWith(t, StringComparison.OrdinalIgnoreCase))); + fileList.RemoveAll(temp => + IgnoreFileEndList.Any(t => temp.EndsWith(t, StringComparison.OrdinalIgnoreCase))); return fileList; } @@ -118,6 +130,8 @@ private List RemoveTempFile(List fileList) /// private readonly string _projectFolder; + private readonly BuildProps _buildProps; + /// /// 忽略的文件夹列表 /// @@ -133,5 +147,18 @@ private List RemoveTempFile(List fileList) { ".csproj.DotSettings", ".suo", ".user", ".sln.docstates", ".nupkg" }; + + class SourceYardPackageFileEqualityComparer : IEqualityComparer + { + public bool Equals(SourceYardPackageFile x, SourceYardPackageFile y) + { + return x.SourceFile.FullName.Equals(y.SourceFile.FullName); + } + + public int GetHashCode(SourceYardPackageFile obj) + { + return obj.SourceFile.FullName.GetHashCode(); + } + } } } \ No newline at end of file diff --git a/src/dotnetCampus.SourceYard/Context/SourceYardPackageFile.cs b/src/dotnetCampus.SourceYard/Context/SourceYardPackageFile.cs new file mode 100644 index 0000000..3a4af46 --- /dev/null +++ b/src/dotnetCampus.SourceYard/Context/SourceYardPackageFile.cs @@ -0,0 +1,26 @@ +using System.IO; + +namespace dotnetCampus.SourceYard.Context +{ + /// + /// 放在源代码包的文件 + /// + public class SourceYardPackageFile + { + public SourceYardPackageFile(FileInfo sourceFile, string sourcePackagePath) + { + SourceFile = sourceFile; + SourcePackagePath = sourcePackagePath; + } + + /// + /// 源代码的文件 + /// + public FileInfo SourceFile { get; } + + /// + /// 打包的路径 + /// + public string SourcePackagePath { get; } + } +} \ No newline at end of file diff --git a/src/dotnetCampus.SourceYard/Packer.cs b/src/dotnetCampus.SourceYard/Packer.cs index 0628c6a..9d9d208 100644 --- a/src/dotnetCampus.SourceYard/Packer.cs +++ b/src/dotnetCampus.SourceYard/Packer.cs @@ -16,51 +16,52 @@ public Packer(string projectFile, string intermediateDirectory, { Logger = new Logger(); - Logger.Message("初始化打包"); + Logger.Message(text: "初始化打包"); - if (string.IsNullOrEmpty(projectFile) || !File.Exists(projectFile)) + if (string.IsNullOrEmpty(value: projectFile) || !File.Exists(path: projectFile)) { - Logger.Error($"无法从{projectFile}找到项目文件"); + Logger.Error(text: $"无法从{projectFile}找到项目文件"); return; } - if (string.IsNullOrEmpty(intermediateDirectory)) + if (string.IsNullOrEmpty(value: intermediateDirectory)) { // 这时的文件夹可以不存在 - Logger.Error("无法解析文件夹 " + intermediateDirectory); + Logger.Error(text: "无法解析文件夹 " + intermediateDirectory); return; } - if (string.IsNullOrEmpty(packageOutputPath)) + if (string.IsNullOrEmpty(value: packageOutputPath)) { - Logger.Error("打包输出文件夹不能为空"); + Logger.Error(text: "打包输出文件夹不能为空"); return; } - if (string.IsNullOrEmpty(packageVersion)) + if (string.IsNullOrEmpty(value: packageVersion)) { - Logger.Error("打包版本不能为空"); + Logger.Error(text: "打包版本不能为空"); return; } - _projectFile = Path.GetFullPath(projectFile); - _intermediateDirectory = Path.GetFullPath(intermediateDirectory); - _packageOutputPath = Path.GetFullPath(packageOutputPath); + _projectFile = Path.GetFullPath(path: projectFile); + _intermediateDirectory = Path.GetFullPath(path: intermediateDirectory); + _packageOutputPath = Path.GetFullPath(path: packageOutputPath); _packageVersion = packageVersion; - _packageReferenceVersion = Path.GetFullPath(packageReferenceVersion); + _packageReferenceVersion = Path.GetFullPath(path: packageReferenceVersion); BuildProps = buildProps; PackageId = packageId; PackagedProjectFile = new PackagedProjectFile ( - compileFile: GetFile(compileFile), - resourceFile: GetFile(resourceFile), - contentFile: GetFile(contentFile), - embeddedResource: GetFile(embeddedResource), - page: GetFile(page), - applicationDefinition: GetFile(applicationDefinition), - noneFile: GetFile(noneFile), - projectFolder: Path.GetDirectoryName(_projectFile) + compileFile: GetFile(file: compileFile), + resourceFile: GetFile(file: resourceFile), + contentFile: GetFile(file: contentFile), + embeddedResource: GetFile(file: embeddedResource), + page: GetFile(file: page), + applicationDefinition: GetFile(file: applicationDefinition), + noneFile: GetFile(file: noneFile), + projectFolder: Path.GetDirectoryName(path: _projectFile), + buildProps: buildProps ); _packers = new IPackFlow[] @@ -72,7 +73,7 @@ public Packer(string projectFile, string intermediateDirectory, new NuGetPacker(), }; - Logger.Message("初始化打包完成"); + Logger.Message(text: "初始化打包完成"); } internal void Pack() diff --git a/src/dotnetCampus.SourceYard/Utils/BuildProps.cs b/src/dotnetCampus.SourceYard/Utils/BuildProps.cs index e2d95a6..59cf84f 100644 --- a/src/dotnetCampus.SourceYard/Utils/BuildProps.cs +++ b/src/dotnetCampus.SourceYard/Utils/BuildProps.cs @@ -4,6 +4,7 @@ using System.Linq; using dotnetCampus.Configurations; using dotnetCampus.Configurations.Core; +using dotnetCampus.SourceYard.Context; namespace dotnetCampus.SourceYard.Utils { @@ -108,6 +109,8 @@ public string Owner /// public string SourcePackingDirectory { get; private set; } + public List CompileSourceYardPackageFile { private set; get; } = null!; + private string _authors; private string _company; @@ -142,8 +145,35 @@ public void SetSourcePackingDirectory(string packingDirectory) var sourceYardPackageReferenceFile = Path.Combine(packingDirectory, "SourceYardPackageReferenceFile.txt"); - List sourceYardPackageReferenceList = File.ReadAllLines(sourceYardPackageReferenceFile).Where(temp=>!string.IsNullOrEmpty(temp)).ToList(); + List sourceYardPackageReferenceList = File.ReadAllLines(sourceYardPackageReferenceFile).Where(temp => !string.IsNullOrEmpty(temp)).ToList(); SourceYardPackageReferenceList = sourceYardPackageReferenceList; + + var sourceYardCompilePackageFile = Path.Combine(packingDirectory, "SourceYardCompilePackageFile.txt"); + + CompileSourceYardPackageFile = ParseSourceYardPackageFile(sourceYardCompilePackageFile); + } + + private List ParseSourceYardPackageFile(string sourceYardPackageFile) + { + var sourceYardPackageFileList = new List(); + var text = File.ReadAllText(sourceYardPackageFile); + + foreach (var line in text.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)) + { + var package = line.Split('|'); + if (package.Length == 2) + { + var sourceFile = package[0]; + var packagePath = package[1]; + + if (!string.IsNullOrEmpty(sourceFile)) + { + sourceYardPackageFileList.Add(new SourceYardPackageFile(new FileInfo(sourceFile), packagePath)); + } + } + } + + return sourceYardPackageFileList; } /// diff --git a/src/dotnetCampus.SourceYard/Utils/FileSystem.cs b/src/dotnetCampus.SourceYard/Utils/FileSystem.cs index 7c9156c..06946d7 100644 --- a/src/dotnetCampus.SourceYard/Utils/FileSystem.cs +++ b/src/dotnetCampus.SourceYard/Utils/FileSystem.cs @@ -3,6 +3,7 @@ using System.Diagnostics; using System.IO; using System.Linq; +using dotnetCampus.SourceYard.Context; namespace dotnetCampus.SourceYard.Utils { @@ -14,19 +15,19 @@ internal static class FileSystem /// /// /// - public static void CopyFileList(string sourceFolder, string targetFolder, List fileList) + public static void CopyFileList(string sourceFolder, string targetFolder, List fileList) { - foreach (var file in fileList.Select(Path.GetFullPath)) + foreach (var file in fileList) { - var relativePath = MakeRelativePath(sourceFolder, file); - var targetFile = Path.GetFullPath(Path.Combine(targetFolder, relativePath)); + //var relativePath = MakeRelativePath(sourceFolder, file); + var targetFile = Path.GetFullPath(Path.Combine(targetFolder, file.SourcePackagePath)); var directory = Path.GetDirectoryName(targetFile); if (directory != null && !Directory.Exists(directory)) { Directory.CreateDirectory(directory); } - File.Copy(file, targetFile, true); + File.Copy(file.SourceFile.FullName, targetFile, true); } } diff --git a/src/dotnetCampus.SourceYard/Utils/ItemGroupElement.cs b/src/dotnetCampus.SourceYard/Utils/ItemGroupElement.cs index c970a8b..5587f92 100644 --- a/src/dotnetCampus.SourceYard/Utils/ItemGroupElement.cs +++ b/src/dotnetCampus.SourceYard/Utils/ItemGroupElement.cs @@ -21,12 +21,18 @@ public ItemGroupElement(PackagedProjectFile contextPackagedProjectFile, string f public (XElement itemGroupElement, XElement itemGroupElementOfXaml) GetItemGroup() { var contextPackagedProjectFile = _contextPackagedProjectFile; - var compileFileList = contextPackagedProjectFile.CompileFileList; - var contentFileList = contextPackagedProjectFile.ContentFileList; - var resourceFileList = contextPackagedProjectFile.ResourceFileList; - var noneFileList = contextPackagedProjectFile.NoneFileList; - var embeddedResource = contextPackagedProjectFile.EmbeddedResourceList; - var pageFileList = contextPackagedProjectFile.PageList; + var compileFileList = contextPackagedProjectFile.CompileFileList.Select(temp => temp.SourcePackagePath) + .ToList(); + var contentFileList = contextPackagedProjectFile.ContentFileList.Select(temp => temp.SourcePackagePath) + .ToList(); + var resourceFileList = contextPackagedProjectFile.ResourceFileList.Select(temp => temp.SourcePackagePath) + .ToList(); + var noneFileList = contextPackagedProjectFile.NoneFileList.Select(temp => temp.SourcePackagePath) + .ToList(); + var embeddedResource = contextPackagedProjectFile.EmbeddedResourceList.Select(temp => temp.SourcePackagePath) + .ToList(); + var pageFileList = contextPackagedProjectFile.PageList.Select(temp => temp.SourcePackagePath) + .ToList(); var prefix = $"_{_packageGuid}"; From 25794c4f0d4c5d3dc81bb68108fc9d7050a7db05 Mon Sep 17 00:00:00 2001 From: lindexi Date: Tue, 18 Aug 2020 10:58:02 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=80=85=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E4=B8=8D=E6=9E=84=E5=BB=BA=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Current/Core.targets | 13 ++++++ .../Context/PackagedProjectFile.cs | 45 ++++++++++++++++--- .../Utils/BuildProps.cs | 27 ----------- 3 files changed, 52 insertions(+), 33 deletions(-) diff --git a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets index 59e8ba8..37a9c33 100644 --- a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets +++ b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets @@ -36,11 +36,20 @@ $(SourcePackingDirectory)PackageReferenceVersionFile.txt $(SourcePackingDirectory)SourceProjectPackageFile.txt $(SourcePackingDirectory)SourceYardPackageReferenceFile.txt + $(SourcePackingDirectory)SourceYardCompilePackageFile.txt + $(SourcePackingDirectory)SourceYardResourcePackageFile.txt + $(SourcePackingDirectory)SourceYardContentPackageFile.txt + $(SourcePackingDirectory)SourceYardNonePackageFile.txt + $(SourcePackingDirectory)SourceYardEmbeddedResourcePackageFile.txt <_SourceYardCompilePackage Include="%(SourceYardCompile.Identity)|%(SourceYardCompile.SourcePackagePath)"/> + <_SourceYardResourcePackage Include="%(SourceYardResource.Identity)|%(SourceYardResource.SourcePackagePath)"/> + <_SourceYardContentPackage Include="%(SourceYardContent.Identity)|%(SourceYardContent.SourcePackagePath)"/> + <_SourceYardNonePackage Include="%(SourceYardNone.Identity)|%(SourceYardNone.SourcePackagePath)"/> + <_SourceYardEmbeddedResourcePackage Include="%(SourceYardEmbeddedResource.Identity)|%(SourceYardEmbeddedResource.SourcePackagePath)"/> @@ -104,6 +113,10 @@ + + + + diff --git a/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs b/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs index d785751..0fe25df 100644 --- a/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs +++ b/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs @@ -20,14 +20,21 @@ public PackagedProjectFile(string compileFile, string resourceFile, string conte _buildProps = buildProps; ApplicationDefinition = applicationDefinition; - CompileFileList = GetSourceYardPackageFileList(compileFile, buildProps.CompileSourceYardPackageFile); - ResourceFileList = GetFileList(resourceFile); - ContentFileList = GetFileList(contentFile); + CompileFileList = GetSourceYardPackageFileList(compileFile, SourceYardCompilePackageFile); + ResourceFileList = GetSourceYardPackageFileList(resourceFile, SourceYardResourcePackageFile); + ContentFileList = GetSourceYardPackageFileList(contentFile, SourceYardContentPackageFile); PageList = GetFileList(page); - NoneFileList = GetFileList(noneFile); - EmbeddedResourceList = GetFileList(embeddedResource); + NoneFileList = GetSourceYardPackageFileList(noneFile, SourceYardNonePackageFile); + EmbeddedResourceList = GetSourceYardPackageFileList(embeddedResource, SourceYardEmbeddedResourcePackageFile); } + private const string + SourceYardCompilePackageFile = "SourceYardCompilePackageFile.txt", + SourceYardResourcePackageFile = "SourceYardResourcePackageFile.txt", + SourceYardContentPackageFile = "SourceYardContentPackageFile.txt", + SourceYardNonePackageFile = "SourceYardNonePackageFile.txt", + SourceYardEmbeddedResourcePackageFile = "SourceYardEmbeddedResourcePackageFile.txt"; + /// /// 需要做源码包的项目的编译的文件 /// @@ -68,12 +75,38 @@ public IReadOnlyList GetAllFile() } private List GetSourceYardPackageFileList(string file, - List sourceYardPackageFileList) + string sourceYardPackageFile) { + sourceYardPackageFile = Path.Combine(_buildProps.SourcePackingDirectory, sourceYardPackageFile); + var sourceYardPackageFileList = ParseSourceYardPackageFile(sourceYardPackageFile); + var fileList = GetFileList(file); return new CombineReadonlyList(sourceYardPackageFileList, fileList).Distinct(new SourceYardPackageFileEqualityComparer()).ToList(); } + private List ParseSourceYardPackageFile(string sourceYardPackageFile) + { + var sourceYardPackageFileList = new List(); + var text = File.ReadAllText(sourceYardPackageFile); + + foreach (var line in text.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)) + { + var package = line.Split('|'); + if (package.Length == 2) + { + var sourceFile = package[0]; + var packagePath = package[1]; + + if (!string.IsNullOrEmpty(sourceFile)) + { + sourceYardPackageFileList.Add(new SourceYardPackageFile(new FileInfo(sourceFile), packagePath)); + } + } + } + + return sourceYardPackageFileList; + } + private List GetFileList(string file) { if (string.IsNullOrEmpty(file) || !File.Exists(file)) diff --git a/src/dotnetCampus.SourceYard/Utils/BuildProps.cs b/src/dotnetCampus.SourceYard/Utils/BuildProps.cs index 59cf84f..1600bd6 100644 --- a/src/dotnetCampus.SourceYard/Utils/BuildProps.cs +++ b/src/dotnetCampus.SourceYard/Utils/BuildProps.cs @@ -109,8 +109,6 @@ public string Owner /// public string SourcePackingDirectory { get; private set; } - public List CompileSourceYardPackageFile { private set; get; } = null!; - private string _authors; private string _company; @@ -149,31 +147,6 @@ public void SetSourcePackingDirectory(string packingDirectory) SourceYardPackageReferenceList = sourceYardPackageReferenceList; var sourceYardCompilePackageFile = Path.Combine(packingDirectory, "SourceYardCompilePackageFile.txt"); - - CompileSourceYardPackageFile = ParseSourceYardPackageFile(sourceYardCompilePackageFile); - } - - private List ParseSourceYardPackageFile(string sourceYardPackageFile) - { - var sourceYardPackageFileList = new List(); - var text = File.ReadAllText(sourceYardPackageFile); - - foreach (var line in text.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)) - { - var package = line.Split('|'); - if (package.Length == 2) - { - var sourceFile = package[0]; - var packagePath = package[1]; - - if (!string.IsNullOrEmpty(sourceFile)) - { - sourceYardPackageFileList.Add(new SourceYardPackageFile(new FileInfo(sourceFile), packagePath)); - } - } - } - - return sourceYardPackageFileList; } /// From a516d9a776a1207ad450b219ddac9a12d5c05287 Mon Sep 17 00:00:00 2001 From: lindexi Date: Tue, 18 Aug 2020 16:18:52 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E5=AF=B9=20SourceFusio?= =?UTF-8?q?n=20=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/dotnet-campus/SourceFusion/issues/13 --- build/Version.props | 2 +- src/dotnetCampus.SourceYard/Assets/Current/Core.targets | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/build/Version.props b/build/Version.props index 0c34e1f..a9cfb3b 100644 --- a/build/Version.props +++ b/build/Version.props @@ -1,5 +1,5 @@ - 0.1.19309-alpha + 0.1.19317-alpha diff --git a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets index 37a9c33..57b5132 100644 --- a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets +++ b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets @@ -42,6 +42,9 @@ $(SourcePackingDirectory)SourceYardContentPackageFile.txt $(SourcePackingDirectory)SourceYardNonePackageFile.txt $(SourcePackingDirectory)SourceYardEmbeddedResourcePackageFile.txt + + + $(SourcePackingDirectory)SourceYardForSourceFusionCompilePackageFile.txt @@ -50,6 +53,7 @@ <_SourceYardContentPackage Include="%(SourceYardContent.Identity)|%(SourceYardContent.SourcePackagePath)"/> <_SourceYardNonePackage Include="%(SourceYardNone.Identity)|%(SourceYardNone.SourcePackagePath)"/> <_SourceYardEmbeddedResourcePackage Include="%(SourceYardEmbeddedResource.Identity)|%(SourceYardEmbeddedResource.SourcePackagePath)"/> + <_SourceYardForSourceFusionCompilePackage Include="%(_SourceFusionIncludedCompileFile.Identity)|SourceFusionGeneratedCode\%(_SourceFusionIncludedCompileFile.Identity)"/> @@ -117,6 +121,7 @@ + From 7ff4174b5bad48d9898db429c6ece9956ff765b6 Mon Sep 17 00:00:00 2001 From: lindexi Date: Tue, 18 Aug 2020 16:21:04 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E8=AE=A9=E4=BB=A3=E7=A0=81=E6=94=AF?= =?UTF-8?q?=E6=8C=81SourceFusion=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Context/PackagedProjectFile.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs b/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs index 0fe25df..1fe50b0 100644 --- a/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs +++ b/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs @@ -21,6 +21,11 @@ public PackagedProjectFile(string compileFile, string resourceFile, string conte ApplicationDefinition = applicationDefinition; CompileFileList = GetSourceYardPackageFileList(compileFile, SourceYardCompilePackageFile); + + // 加上对 SourceFusion 的支持 + CompileFileList = CombineSourceYardPackageFileList(CompileFileList, + ParseSourceYardPackageFile(SourceYardForSourceFusionCompilePackageFile)); + ResourceFileList = GetSourceYardPackageFileList(resourceFile, SourceYardResourcePackageFile); ContentFileList = GetSourceYardPackageFileList(contentFile, SourceYardContentPackageFile); PageList = GetFileList(page); @@ -33,7 +38,8 @@ private const string SourceYardResourcePackageFile = "SourceYardResourcePackageFile.txt", SourceYardContentPackageFile = "SourceYardContentPackageFile.txt", SourceYardNonePackageFile = "SourceYardNonePackageFile.txt", - SourceYardEmbeddedResourcePackageFile = "SourceYardEmbeddedResourcePackageFile.txt"; + SourceYardEmbeddedResourcePackageFile = "SourceYardEmbeddedResourcePackageFile.txt", + SourceYardForSourceFusionCompilePackageFile = "SourceYardForSourceFusionCompilePackageFile.txt"; /// /// 需要做源码包的项目的编译的文件 @@ -81,7 +87,14 @@ private List GetSourceYardPackageFileList(string file, var sourceYardPackageFileList = ParseSourceYardPackageFile(sourceYardPackageFile); var fileList = GetFileList(file); - return new CombineReadonlyList(sourceYardPackageFileList, fileList).Distinct(new SourceYardPackageFileEqualityComparer()).ToList(); + + return CombineSourceYardPackageFileList(sourceYardPackageFileList, fileList); + } + + private List CombineSourceYardPackageFileList( + params IReadOnlyList[] sourceYardPackageFile) + { + return new CombineReadonlyList(sourceYardPackageFile).Distinct(new SourceYardPackageFileEqualityComparer()).ToList(); } private List ParseSourceYardPackageFile(string sourceYardPackageFile) From a2f4dad8844525b9c4cc3a1e9d099c6c514cae4a Mon Sep 17 00:00:00 2001 From: lindexi Date: Tue, 18 Aug 2020 16:21:13 +0800 Subject: [PATCH 09/11] =?UTF-8?q?Revert=20"=E8=AE=A9=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=94=AF=E6=8C=81SourceFusion=E6=96=B9=E6=B3=95"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 7ff4174b5bad48d9898db429c6ece9956ff765b6. --- .../Context/PackagedProjectFile.cs | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs b/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs index 1fe50b0..0fe25df 100644 --- a/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs +++ b/src/dotnetCampus.SourceYard/Context/PackagedProjectFile.cs @@ -21,11 +21,6 @@ public PackagedProjectFile(string compileFile, string resourceFile, string conte ApplicationDefinition = applicationDefinition; CompileFileList = GetSourceYardPackageFileList(compileFile, SourceYardCompilePackageFile); - - // 加上对 SourceFusion 的支持 - CompileFileList = CombineSourceYardPackageFileList(CompileFileList, - ParseSourceYardPackageFile(SourceYardForSourceFusionCompilePackageFile)); - ResourceFileList = GetSourceYardPackageFileList(resourceFile, SourceYardResourcePackageFile); ContentFileList = GetSourceYardPackageFileList(contentFile, SourceYardContentPackageFile); PageList = GetFileList(page); @@ -38,8 +33,7 @@ private const string SourceYardResourcePackageFile = "SourceYardResourcePackageFile.txt", SourceYardContentPackageFile = "SourceYardContentPackageFile.txt", SourceYardNonePackageFile = "SourceYardNonePackageFile.txt", - SourceYardEmbeddedResourcePackageFile = "SourceYardEmbeddedResourcePackageFile.txt", - SourceYardForSourceFusionCompilePackageFile = "SourceYardForSourceFusionCompilePackageFile.txt"; + SourceYardEmbeddedResourcePackageFile = "SourceYardEmbeddedResourcePackageFile.txt"; /// /// 需要做源码包的项目的编译的文件 @@ -87,14 +81,7 @@ private List GetSourceYardPackageFileList(string file, var sourceYardPackageFileList = ParseSourceYardPackageFile(sourceYardPackageFile); var fileList = GetFileList(file); - - return CombineSourceYardPackageFileList(sourceYardPackageFileList, fileList); - } - - private List CombineSourceYardPackageFileList( - params IReadOnlyList[] sourceYardPackageFile) - { - return new CombineReadonlyList(sourceYardPackageFile).Distinct(new SourceYardPackageFileEqualityComparer()).ToList(); + return new CombineReadonlyList(sourceYardPackageFileList, fileList).Distinct(new SourceYardPackageFileEqualityComparer()).ToList(); } private List ParseSourceYardPackageFile(string sourceYardPackageFile) From 3c5662db660613f1b17a846d0ed3c36030746a6a Mon Sep 17 00:00:00 2001 From: lindexi Date: Tue, 18 Aug 2020 16:30:37 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E5=86=99=E5=85=A5=E5=88=B0=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Current/Core.targets | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets index 57b5132..8403f08 100644 --- a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets +++ b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets @@ -42,9 +42,6 @@ $(SourcePackingDirectory)SourceYardContentPackageFile.txt $(SourcePackingDirectory)SourceYardNonePackageFile.txt $(SourcePackingDirectory)SourceYardEmbeddedResourcePackageFile.txt - - - $(SourcePackingDirectory)SourceYardForSourceFusionCompilePackageFile.txt @@ -53,6 +50,8 @@ <_SourceYardContentPackage Include="%(SourceYardContent.Identity)|%(SourceYardContent.SourcePackagePath)"/> <_SourceYardNonePackage Include="%(SourceYardNone.Identity)|%(SourceYardNone.SourcePackagePath)"/> <_SourceYardEmbeddedResourcePackage Include="%(SourceYardEmbeddedResource.Identity)|%(SourceYardEmbeddedResource.SourcePackagePath)"/> + + <_SourceYardForSourceFusionCompilePackage Include="%(_SourceFusionIncludedCompileFile.Identity)|SourceFusionGeneratedCode\%(_SourceFusionIncludedCompileFile.Identity)"/> @@ -117,11 +116,14 @@ + + + - + From 7481e8d9e1989a8e586bace931959cb176afcc3c Mon Sep 17 00:00:00 2001 From: lindexi Date: Tue, 18 Aug 2020 16:37:45 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E4=B8=8D=E6=94=BE=20SourceFusion=20?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=96=87=E4=BB=B6=EF=BC=8C=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E8=B0=83=E8=AF=95=E6=BA=90=E4=BB=A3=E7=A0=81=E6=89=BE=E4=B8=8D?= =?UTF-8?q?=E5=88=B0=E5=AF=B9=E5=BA=94=E7=9A=84=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit <_HocolearcerecemDajaljawriCompile Include="$(HocolearcerecemDajaljawriSourceFolder)\SourceFusionGeneratedCode\obj\Debug\SourceFusion.GeneratedCodes\A.g.cs" Visible="True" /> 如果用户想调试源代码,将会找不到 SourceFusionGeneratedCode\obj\Debug\SourceFusion.GeneratedCodes\A.g.cs 文件 --- src/dotnetCampus.SourceYard/Assets/Current/Core.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets index 8403f08..efa5813 100644 --- a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets +++ b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets @@ -52,7 +52,7 @@ <_SourceYardEmbeddedResourcePackage Include="%(SourceYardEmbeddedResource.Identity)|%(SourceYardEmbeddedResource.SourcePackagePath)"/> - <_SourceYardForSourceFusionCompilePackage Include="%(_SourceFusionIncludedCompileFile.Identity)|SourceFusionGeneratedCode\%(_SourceFusionIncludedCompileFile.Identity)"/> + <_SourceYardForSourceFusionCompilePackage Include="%(_SourceFusionIncludedCompileFile.Identity)|%(_SourceFusionIncludedCompileFile.Identity)"/>