diff --git a/Build/.nuke/build.schema.json b/Build/.nuke/build.schema.json
index db5398f..a432725 100644
--- a/Build/.nuke/build.schema.json
+++ b/Build/.nuke/build.schema.json
@@ -90,6 +90,9 @@
"ProjectNameFolder": {
"type": "boolean"
},
+ "ProjectRemoveAppendTargetFrameworkFolder": {
+ "type": "boolean"
+ },
"ProjectVersionFolder": {
"type": "boolean"
},
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 370eb5e..bc742d1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+## [1.6.3] / 2023-12-06 - 2023-12-22
+### Features
+- Add `ProjectRemoveTargetFrameworkFolder` to remove `net` folder in `PackageBuilder`.
+- Update `ReleasePackageBuilder` to not create the Inno installation when false.
+### Updated
+- Update `Autodesk.PackageBuilder` to `1.0.6`
+- Update `ricaun.Nuke` to `1.7.3`
+### Example
+- Update `AppendTargetFrameworkToOutputPath` to `true`.
+
## [1.6.2] / 2023-11-19
### Updated
- Update `ricaun.Nuke` to `1.7.2`
@@ -264,6 +274,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- First Release
[vNext]: ../../compare/1.0.0...HEAD
+[1.6.3]: ../../compare/1.6.2...1.6.3
[1.6.2]: ../../compare/1.6.1...1.6.2
[1.6.1]: ../../compare/1.6.0...1.6.1
[1.6.0]: ../../compare/1.5.1...1.6.0
diff --git a/Directory.Build.props b/Directory.Build.props
index 1f7240e..c263cf6 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,5 +1,5 @@
- 1.6.2
+ 1.6.3
\ No newline at end of file
diff --git a/README.md b/README.md
index 3bd4247..57b9e5d 100644
--- a/README.md
+++ b/README.md
@@ -46,6 +46,7 @@ bool IHazPackageBuilderProject.ReleasePackageBuilder => true;
bool IHazPackageBuilderProject.ReleaseBundle => true;
bool IHazPackageBuilderProject.ProjectNameFolder => true;
bool IHazPackageBuilderProject.ProjectVersionFolder => true;
+bool IHazPackageBuilderProject.ProjectRemoveTargetFrameworkFolder => true;
```
### IHazRevitPackageBuilder
diff --git a/RevitAddin.PackageBuilder.Example/Revit/App.cs b/RevitAddin.PackageBuilder.Example/Revit/App.cs
index e6599e9..7afbdfe 100644
--- a/RevitAddin.PackageBuilder.Example/Revit/App.cs
+++ b/RevitAddin.PackageBuilder.Example/Revit/App.cs
@@ -12,7 +12,8 @@ public class App : IExternalApplication
public Result OnStartup(UIControlledApplication application)
{
ribbonPanel = application.CreatePanel(GetRevitVersion());
- ribbonPanel.CreatePushButton(Properties.Resource.Text);
+ ribbonPanel.CreatePushButton(Properties.Resource.Text)
+ .SetLargeImage("/UIFrameworkRes;component/ribbon/images/revit.ico");
return Result.Succeeded;
}
diff --git a/RevitAddin.PackageBuilder.Example/RevitAddin.PackageBuilder.Example.csproj b/RevitAddin.PackageBuilder.Example/RevitAddin.PackageBuilder.Example.csproj
index 2f50677..fca4dc8 100644
--- a/RevitAddin.PackageBuilder.Example/RevitAddin.PackageBuilder.Example.csproj
+++ b/RevitAddin.PackageBuilder.Example/RevitAddin.PackageBuilder.Example.csproj
@@ -6,7 +6,7 @@
AnyCPU
true
Latest
- false
+ true
None
Debug 2019;2019;Debug 2020;2020;Debug 2021;2021;Debug 2022;2022;2023;2017
diff --git a/ricaun.Nuke.PackageBuilder/Components/IHazPackageBuilderProject.cs b/ricaun.Nuke.PackageBuilder/Components/IHazPackageBuilderProject.cs
index a8b495b..aa6b374 100644
--- a/ricaun.Nuke.PackageBuilder/Components/IHazPackageBuilderProject.cs
+++ b/ricaun.Nuke.PackageBuilder/Components/IHazPackageBuilderProject.cs
@@ -42,6 +42,12 @@ public interface IHazPackageBuilderProject : IHazMainProject, IHazSolution, INuk
[Parameter]
bool ProjectVersionFolder => TryGetValue(() => ProjectVersionFolder) ?? true;
+ ///
+ /// Add ProjectRemoveTargetFrameworkFolder on the Contents (default: true)
+ ///
+ [Parameter]
+ bool ProjectRemoveTargetFrameworkFolder => TryGetValue(() => ProjectRemoveTargetFrameworkFolder) ?? true;
+
///
/// GetPackageBuilderProject by the Name
///
diff --git a/ricaun.Nuke.PackageBuilder/Components/Revit/IRevitPackageBuilder.cs b/ricaun.Nuke.PackageBuilder/Components/Revit/IRevitPackageBuilder.cs
index 6f4af3c..bfaf369 100644
--- a/ricaun.Nuke.PackageBuilder/Components/Revit/IRevitPackageBuilder.cs
+++ b/ricaun.Nuke.PackageBuilder/Components/Revit/IRevitPackageBuilder.cs
@@ -72,67 +72,72 @@ public void CreatePackageBuilder(Project project, bool releasePackageBuilder = f
FileSystemTasks.CopyDirectoryRecursively(InputDirectory, ContentsDirectory);
- CreateRevitAddinOnProjectFiles(project, ContentsDirectory);
+ if (ProjectRemoveTargetFrameworkFolder)
+ {
+ AppendTargetFrameworkExtension.RemoveAppendTargetFrameworkDirectory(ContentsDirectory);
+ }
- // CopyInstallationFiles If Exists
- CopyInstallationFilesTo(PackageBuilderDirectory);
+ CreateRevitAddinOnProjectFiles(project, ContentsDirectory);
new RevitContentsBuilder(project, BundleDirectory, MiddleVersions, NewVersions)
.Build(BundleDirectory / "PackageContents.xml");
- // Create Iss Files
- try
- {
- Serilog.Log.Information($"IssPackageBuilder: {typeof(T)}");
- var issPackageBuilder = new T();
- issPackageBuilder
- .Initialize(project)
- .CreatePackage(PackageBuilderDirectory, IssConfiguration)
- .CreateFile(PackageBuilderDirectory);
- }
- catch (Exception)
+ if (releasePackageBuilder)
{
- Serilog.Log.Error($"Error on IssPackageBuilder: {typeof(T)}");
- throw;
- }
+ // CopyInstallationFiles If Exists
+ CopyInstallationFilesTo(PackageBuilderDirectory);
+
+ // Create Iss Files
+ try
+ {
+ Serilog.Log.Information($"IssPackageBuilder: {typeof(T)}");
+ var issPackageBuilder = new T();
+ issPackageBuilder
+ .Initialize(project)
+ .CreatePackage(PackageBuilderDirectory, IssConfiguration)
+ .CreateFile(PackageBuilderDirectory);
+ }
+ catch (Exception)
+ {
+ Serilog.Log.Error($"Error on IssPackageBuilder: {typeof(T)}");
+ throw;
+ }
- // Deploy File
- var outputInno = OutputDirectory;
- var packageBuilderDirectory = GetMaxPathFolderOrTempFolder(PackageBuilderDirectory);
- var issFiles = Globbing.GlobFiles(packageBuilderDirectory, $"*{projectName}.iss");
+ // Deploy File
+ var outputInno = OutputDirectory;
+ var packageBuilderDirectory = GetMaxPathFolderOrTempFolder(PackageBuilderDirectory);
+ var issFiles = Globbing.GlobFiles(packageBuilderDirectory, $"*{projectName}.iss");
- if (issFiles.IsEmpty())
- Serilog.Log.Error($"Not found any .iss file in {packageBuilderDirectory}");
+ if (issFiles.IsEmpty())
+ Serilog.Log.Error($"Not found any .iss file in {packageBuilderDirectory}");
- issFiles.ForEach(file =>
- {
- InnoSetupTasks.InnoSetup(config => config
- .SetProcessToolPath(NuGetToolPathResolver.GetPackageExecutable("Tools.InnoSetup", "ISCC.exe"))
- .SetScriptFile(file)
- .SetOutputDir(outputInno));
- });
+ issFiles.ForEach(file =>
+ {
+ InnoSetupTasks.InnoSetup(config => config
+ .SetProcessToolPath(NuGetToolPathResolver.GetPackageExecutable("Tools.InnoSetup", "ISCC.exe"))
+ .SetScriptFile(file)
+ .SetOutputDir(outputInno));
+ });
- // Sign outputInno
- SignFolder(outputInno);
+ // Sign outputInno
+ SignFolder(outputInno);
- // Zip exe Files
- var exeFiles = Globbing.GlobFiles(outputInno, "**/*.exe");
- exeFiles.ForEach(file => ZipExtension.ZipFileCompact(file, projectNameVersion));
+ // Zip exe Files
+ var exeFiles = Globbing.GlobFiles(outputInno, "**/*.exe");
+ exeFiles.ForEach(file => ZipExtension.ZipFileCompact(file, projectNameVersion));
- if (exeFiles.IsEmpty())
- Serilog.Log.Error($"Not found any .exe file in {outputInno}");
+ if (exeFiles.IsEmpty())
+ Serilog.Log.Error($"Not found any .exe file in {outputInno}");
- var message = string.Join(" | ", exeFiles.Select(e => e.Name));
- ReportSummary(_ => _.AddPair("File", message));
+ var message = string.Join(" | ", exeFiles.Select(e => e.Name));
+ ReportSummary(_ => _.AddPair("File", message));
- if (outputInno != ReleaseDirectory)
- {
- Globbing.GlobFiles(outputInno, "**/*.zip")
- .ForEach(file => FileSystemTasks.CopyFileToDirectory(file, ReleaseDirectory));
- }
+ if (outputInno != ReleaseDirectory)
+ {
+ Globbing.GlobFiles(outputInno, "**/*.zip")
+ .ForEach(file => FileSystemTasks.CopyFileToDirectory(file, ReleaseDirectory));
+ }
- if (releasePackageBuilder)
- {
var folder = Path.GetFileName(PackageBuilderDirectory);
var releaseFileName = CreateReleaseFromDirectory(PackageBuilderDirectory, projectName, projectVersion, $".{folder}.zip");
Serilog.Log.Information($"Release: {releaseFileName}");
diff --git a/ricaun.Nuke.PackageBuilder/Extensions/AppendTargetFrameworkExtension.cs b/ricaun.Nuke.PackageBuilder/Extensions/AppendTargetFrameworkExtension.cs
new file mode 100644
index 0000000..d10f234
--- /dev/null
+++ b/ricaun.Nuke.PackageBuilder/Extensions/AppendTargetFrameworkExtension.cs
@@ -0,0 +1,35 @@
+using Nuke.Common.IO;
+using Nuke.Common.Utilities.Collections;
+
+namespace ricaun.Nuke.Extensions
+{
+ ///
+ /// AppendTargetFrameworkExtension
+ ///
+ public static class AppendTargetFrameworkExtension
+ {
+ ///
+ /// RemoveAppendTargetFrameworkDirectory
+ ///
+ ///
+ public static void RemoveAppendTargetFrameworkDirectory(AbsolutePath contentsDirectory)
+ {
+ Globbing.GlobDirectories(contentsDirectory, "**/net*")
+ .ForEach(targetFrameworkDirectory =>
+ {
+ var directoryName = targetFrameworkDirectory.Name;
+ Serilog.Log.Information($"RemoveAppendTargetFrameworkDirectory: {directoryName} - {targetFrameworkDirectory}");
+ if (targetFrameworkDirectory.Exists())
+ {
+ if (targetFrameworkDirectory.Parent.ContainsFile("*") == false)
+ {
+ Serilog.Log.Information($"CopyDirectoryRecursively: {directoryName} to {targetFrameworkDirectory.Parent.Name}");
+ Serilog.Log.Information($"RemoveTargetFrameworkDirectory: {directoryName} move to {targetFrameworkDirectory.Parent.Name}");
+ FileSystemTasks.CopyDirectoryRecursively(targetFrameworkDirectory, targetFrameworkDirectory.Parent, DirectoryExistsPolicy.Merge);
+ targetFrameworkDirectory.DeleteDirectory();
+ }
+ }
+ });
+ }
+ }
+}