diff --git a/DebUOS/Packaging.DebUOS.NuGet/Build/package.targets b/DebUOS/Packaging.DebUOS.NuGet/Build/package.targets
index 267f7f5..4d71a9b 100644
--- a/DebUOS/Packaging.DebUOS.NuGet/Build/package.targets
+++ b/DebUOS/Packaging.DebUOS.NuGet/Build/package.targets
@@ -305,8 +305,8 @@
-
-
+
+
diff --git a/DebUOS/Packaging.DebUOS/Contexts/Configurations/DebUOSConfiguration.cs b/DebUOS/Packaging.DebUOS/Contexts/Configurations/DebUOSConfiguration.cs
index 2ecd6a7..ebcd309 100644
--- a/DebUOS/Packaging.DebUOS/Contexts/Configurations/DebUOSConfiguration.cs
+++ b/DebUOS/Packaging.DebUOS/Contexts/Configurations/DebUOSConfiguration.cs
@@ -672,11 +672,13 @@ public string? ExcludePackingDebFileExtensions
set => SetValue(value);
get => GetString() ?? ".pdb;.dbg;.md";
}
-
+
///
- /// 打包时是否将 bin 文件夹替换为应用版本号,默认不替换
+ /// 打包时是否将 bin 文件夹替换为应用版本号,默认不替换。如设置为 True 将使用 属性的版本号作为文件夹名替换 bin 文件夹名
///
- public bool ReplaceBinWithAppVersion
+ /// 有些应用期望里层带版本号,即打出 `/opt/apps/${AppId}/files/${UOSDebVersion}/${AssemblyName}`格式的路径,如 `/opt/apps/com.dotnetcampus.app/files/1.0.0/app` 的路径,可以方便用来做软件更新。默认为 false 打出来的是 /opt/apps/${AppId}/files/bin/${AssemblyName} 格式的路径
+ /// False
+ public bool UsingAppVersionInsteadOfBinOnDebPacking
{
set => SetValue(value);
get => GetBoolean() ?? false;
diff --git a/DebUOS/Packaging.DebUOS/DebUOSPackageFileStructCreator.cs b/DebUOS/Packaging.DebUOS/DebUOSPackageFileStructCreator.cs
index ef0cc4c..59be021 100644
--- a/DebUOS/Packaging.DebUOS/DebUOSPackageFileStructCreator.cs
+++ b/DebUOS/Packaging.DebUOS/DebUOSPackageFileStructCreator.cs
@@ -90,7 +90,15 @@ public void CreatePackagingFolder(DebUOSConfiguration configuration)
var appIdFolder = Path.Join(packingFolder, "opt", "apps", appId);
var filesFolder = Path.Join(appIdFolder, "files");
Directory.CreateDirectory(filesFolder);
- var applicationFolder = configuration.ReplaceBinWithAppVersion ? Path.Join(filesFolder, configuration.UOSDebVersion) : Path.Join(filesFolder, "bin");
+ var binaryFolderName = "bin";
+ if (configuration.UsingAppVersionInsteadOfBinOnDebPacking)
+ {
+ // 如果配置了使用版本号作为文件夹名,则使用版本号作为文件夹名
+ // 否则使用 bin 作为文件夹名
+ binaryFolderName = configuration.UOSDebVersion;
+ }
+
+ var applicationFolder = Path.Join(filesFolder, binaryFolderName);
if (!FolderUtils.CreateSymbolLinkOrCopyFolder(projectPublishFolder, applicationFolder))
{
throw new PackagingException($"将发布输出文件拷贝到安装包打包文件夹失败,从 '{projectPublishFolder}' 复制到 '{applicationFolder}' 失败");
@@ -153,9 +161,7 @@ public void CreatePackagingFolder(DebUOSConfiguration configuration)
{
// 这里不能使用 Path.Join 方法,因为如果在 Windows 上进行打包,会将 \ 替换为 /,导致打包失败
//var exec = Path.Join("/opt/apps", appId, "files", "bin", configuration.AssemblyName);
- var exec = configuration.ReplaceBinWithAppVersion
- ? $"/opt/apps/{appId}/files/{configuration.UOSDebVersion}/{configuration.AssemblyName}"
- : $"/opt/apps/{appId}/files/bin/{configuration.AssemblyName}";
+ var exec = $"/opt/apps/{appId}/files/{binaryFolderName}/{configuration.AssemblyName}";
stringBuilder.Append($"Exec={exec}\n");
}