Files
BusyRabbit/Plugins/UnrealSharp/Managed/UnrealSharpPrograms/UnrealSharpBuildTool/Actions/PackageProject.cs
wyatt 648386cd73 Lua向C#逻辑迁移 一期 #13
将整个插件代码上传
2025-10-26 21:48:39 +08:00

43 lines
1.5 KiB
C#

using System.Collections.ObjectModel;
namespace UnrealSharpBuildTool.Actions;
public class PackageProject : BuildToolAction
{
public override bool RunAction()
{
string archiveDirectoryPath = Program.TryGetArgument("ArchiveDirectory");
if (string.IsNullOrEmpty(archiveDirectoryPath))
{
throw new Exception("ArchiveDirectory argument is required for the Publish action.");
}
string rootProjectPath = Path.Combine(archiveDirectoryPath, Program.BuildToolOptions.ProjectName);
string binariesPath = Program.GetOutputPath(rootProjectPath);
string bindingsPath = Path.Combine(Program.BuildToolOptions.PluginDirectory, "Managed", "UnrealSharp");
string bindingsOutputPath = Path.Combine(Program.BuildToolOptions.PluginDirectory, "Intermediate", "Build", "Managed");
Collection<string> extraArguments =
[
"--self-contained",
"--runtime",
"win-x64",
"-p:DisableWithEditor=true",
$"-p:PublishDir=\"{binariesPath}\"",
$"-p:OutputPath=\"{bindingsOutputPath}\"",
];
BuildSolution buildBindings = new BuildSolution(bindingsPath, extraArguments, BuildConfig.Publish);
buildBindings.RunAction();
BuildUserSolution buildUserSolution = new BuildUserSolution(null, BuildConfig.Publish);
buildUserSolution.RunAction();
WeaveProject weaveProject = new WeaveProject(binariesPath);
weaveProject.RunAction();
return true;
}
}