Creating portable zip automatically

This commit is contained in:
Jaex 2014-01-12 18:05:31 +02:00
parent e97a24e19a
commit 6f3ae5ad6f
4 changed files with 32 additions and 5 deletions

4
.gitignore vendored
View file

@ -108,6 +108,4 @@ Backup*/
UpgradeLog*.XML
# Additional
*.exe
*.userprefs
Output/
Output/

BIN
ShareXPortable/7za.exe Normal file

Binary file not shown.

View file

@ -38,7 +38,8 @@ private static void Main(string[] args)
{
string parentDir = @"..\..\..\";
string releaseDir = Path.Combine(parentDir, @"ShareX\bin\Release");
string portableDir = Path.Combine(parentDir, @"Output\Portable");
string outputDir = Path.Combine(parentDir, "Output");
string portableDir = Path.Combine(outputDir, "Portable");
List<string> files = new List<string>();
@ -75,10 +76,33 @@ private static void Main(string[] args)
File.WriteAllText(Path.Combine(portableDir, "PersonalPath.cfg"), "ShareX", Encoding.UTF8);
Console.WriteLine("Created PersonalPath.cfg file.");
Process.Start("explorer.exe", portableDir);
FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(Path.Combine(releaseDir, "ShareX.exe"));
string version = string.Format("{0}.{1}", versionInfo.ProductMajorPart, versionInfo.ProductMinorPart);
if (versionInfo.ProductBuildPart > 0) version += "." + versionInfo.ProductBuildPart;
string zipFilename = string.Format("ShareX-{0}-Portable.zip", version);
string zipPath = Path.Combine(outputDir, zipFilename);
if (File.Exists(zipPath))
{
File.Delete(zipPath);
}
Zip(portableDir + "\\*.*", zipPath);
Process.Start("explorer.exe", outputDir);
Console.WriteLine("Done.");
//Console.Read();
}
private static void Zip(string source, string target)
{
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = "7za.exe";
p.Arguments = string.Format("a -tzip \"{0}\" \"{1}\" -mx=9", target, source);
p.WindowStyle = ProcessWindowStyle.Hidden;
Process process = Process.Start(p);
process.WaitForExit();
}
}
}

View file

@ -39,6 +39,11 @@
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="7za.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.