diff --git a/.github/workflows/PublishNuget.yml b/.github/workflows/PublishNuget.yml
index 37a208d..e3c0f01 100644
--- a/.github/workflows/PublishNuget.yml
+++ b/.github/workflows/PublishNuget.yml
@@ -2,8 +2,8 @@ name: publish nuget
on:
push:
- branches:
- - master
+ tags:
+ - '*'
jobs:
build:
@@ -16,7 +16,14 @@ jobs:
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
- dotnet-version: 3.1.201
+ dotnet-version: 3.1.202
+
+ - name: Install tool
+ run: dotnet tool install -g dotnetCampus.TagToVersion
+
+ - name: Set tag to version
+ run: dotnet TagToVersion -t ${{ github.ref }}
+
- name: Build with dotnet
run: dotnet build --configuration Release
- name: Install Nuget
diff --git a/build/Version.props b/build/Version.props
index f62feed..783a115 100644
--- a/build/Version.props
+++ b/build/Version.props
@@ -1,5 +1,5 @@
- 0.1.19031-alpha
+ 0.1.19051-alpha
diff --git a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets
index a24a3a1..a88007a 100644
--- a/src/dotnetCampus.SourceYard/Assets/Current/Core.targets
+++ b/src/dotnetCampus.SourceYard/Assets/Current/Core.targets
@@ -33,6 +33,7 @@
$(SourcePackingDirectory)PackageReferenceVersionFile.txt
$(SourcePackingDirectory)SourceProjectPackageFile.txt
+ $(SourcePackingDirectory)SourceYardPackageReferenceFile.txt
@@ -98,7 +99,7 @@
-
+
diff --git a/src/dotnetCampus.SourceYard/Assets/Target/build/$(PackageId).props b/src/dotnetCampus.SourceYard/Assets/Target/build/$(PackageId).props
index da3711e..c0c58f9 100644
--- a/src/dotnetCampus.SourceYard/Assets/Target/build/$(PackageId).props
+++ b/src/dotnetCampus.SourceYard/Assets/Target/build/$(PackageId).props
@@ -12,4 +12,7 @@
True
+
+ $(SourceYardPackageReference);#(PackageId)
+
\ No newline at end of file
diff --git a/src/dotnetCampus.SourceYard/PackFlow/NuspecFileGenerator.cs b/src/dotnetCampus.SourceYard/PackFlow/NuspecFileGenerator.cs
index 2a1c5cf..165aa07 100644
--- a/src/dotnetCampus.SourceYard/PackFlow/NuspecFileGenerator.cs
+++ b/src/dotnetCampus.SourceYard/PackFlow/NuspecFileGenerator.cs
@@ -1,4 +1,5 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
@@ -37,19 +38,19 @@ private void Write(NuspecPackage nuspecPackage, string fileName)
var ns = new XmlSerializerNamespaces();
ns.Add("", "");
-//#if DEBUG
+ //#if DEBUG
-// var str = new StringBuilder();
-// using (var xmlWriter = XmlWriter.Create(str))
-// {
-// var xmlSerializer = new XmlSerializer(typeof(NuspecPackage));
-// xmlSerializer.Serialize(xmlWriter, nuspecPackage, ns);
-// }
+ // var str = new StringBuilder();
+ // using (var xmlWriter = XmlWriter.Create(str))
+ // {
+ // var xmlSerializer = new XmlSerializer(typeof(NuspecPackage));
+ // xmlSerializer.Serialize(xmlWriter, nuspecPackage, ns);
+ // }
-// var rawceeyopereSuwhisa = str.ToString();
+ // var rawceeyopereSuwhisa = str.ToString();
-// rawceeyopereSuwhisa = rawceeyopereSuwhisa;
-//#endif
+ // rawceeyopereSuwhisa = rawceeyopereSuwhisa;
+ //#endif
using (var stream = file.OpenWrite())
{
@@ -88,18 +89,20 @@ private NuspecPackage GetNuspec(IPackingContext context)
PackageLicenseUrl = buildProps.PackageLicenseUrl,
PackageTags = buildProps.PackageTags,
PackageReleaseNotes = buildProps.PackageReleaseNotes,
- Dependencies = GetDependencies(context.PackageReferenceVersion),
+ Dependencies = GetDependencies(context.PackageReferenceVersion, buildProps.SourceYardPackageReferenceList),
Repository = repository
}
};
}
- private List GetDependencies(string contextPackageVersion)
+ private List GetDependencies(string contextPackageVersion,
+ List sourceYardPackageReferenceList)
{
- return ParserPackageVersion(contextPackageVersion);
+ return ParserPackageVersion(contextPackageVersion, sourceYardPackageReferenceList);
}
- private List ParserPackageVersion(string packageVersionFile)
+ private List ParserPackageVersion(string packageVersionFile,
+ List sourceYardPackageReferenceList)
{
var nuspecDependencyList = new List();
var packageVersionRegex = new Regex(@"Name='(\S+)' Version='([\S|\-]+)' PrivateAssets='(\S*)'");
@@ -117,7 +120,14 @@ private List ParserPackageVersion(string packageVersionFile)
// 在源代码包如果项目引用的是 private asset 的库,那么就不应该添加引用
// 因为源代码是没有框架的依赖,对 sdk 带的库也不添加
- if (!privateAssets.Contains("all")
+
+ var isPrivateAssetsAll = privateAssets.Contains("all");
+
+ // 解决 https://github.com/dotnet-campus/SourceYard/issues/60
+ // 即使有某个包标记了使用 private asset 是 All 的,但是这个包是一个源代码包,那么打包的时候就需要添加他的引用依赖
+ var includeInSourceYardPackageReference = sourceYardPackageReferenceList.Any(temp => temp.Equals(name, StringComparison.OrdinalIgnoreCase));
+
+ if ((!isPrivateAssetsAll || includeInSourceYardPackageReference)
&& !SDKNuget.Contains(name))
{
nuspecDependencyList.Add(new NuspecDependency()
diff --git a/src/dotnetCampus.SourceYard/Utils/BuildProps.cs b/src/dotnetCampus.SourceYard/Utils/BuildProps.cs
index 55f65f3..7a17a84 100644
--- a/src/dotnetCampus.SourceYard/Utils/BuildProps.cs
+++ b/src/dotnetCampus.SourceYard/Utils/BuildProps.cs
@@ -138,6 +138,17 @@ public void SetSourcePackingDirectory(string packingDirectory)
RepositoryUrl = appConfigurator.Default.GetValue("RepositoryUrl").Trim();
}
+
+ var sourceYardPackageReferenceFile = Path.Combine(packingDirectory, "SourceYardPackageReferenceFile.txt");
+
+ List sourceYardPackageReferenceList = File.ReadAllLines(sourceYardPackageReferenceFile).Where(temp=>!string.IsNullOrEmpty(temp)).ToList();
+ SourceYardPackageReferenceList = sourceYardPackageReferenceList;
}
+
+ ///
+ /// 安装的源代码包列表
+ ///
+ /// 用于解决 https://github.com/dotnet-campus/SourceYard/issues/60
+ public List SourceYardPackageReferenceList { get; private set; }
}
}
\ No newline at end of file