diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-02-25 16:03:14 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-02-25 16:03:14 +0200 |
| commit | 08d9858ecd0d4adb0c9c6076d7d2b1216e8f64c3 (patch) | |
| tree | b1f11d302b4db5346213b7c93c78d4b9500d8398 /Software/Visual_Studio | |
| parent | 602f49b2b0eb1f032f3dead60e8bf499ceca0a7b (diff) | |
| download | Tango-08d9858ecd0d4adb0c9c6076d7d2b1216e8f64c3.tar.gz Tango-08d9858ecd0d4adb0c9c6076d7d2b1216e8f64c3.zip | |
Completed advanced installer lib + unit test.
Diffstat (limited to 'Software/Visual_Studio')
20 files changed, 367 insertions, 52 deletions
diff --git a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt Binary files differindex a603ff06b..6d87e9201 100644 --- a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt +++ b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/cacheIndex.txt diff --git a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/part2/PPC Installer v1.0.31.cab b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/part4/PPC Installer v1.0.31.cab Binary files differindex d7d54343c..472742398 100644 --- a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/part2/PPC Installer v1.0.31.cab +++ b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/part4/PPC Installer v1.0.31.cab diff --git a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/part2/output-info.ini b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/part4/output-info.ini Binary files differindex 474dea2e2..16f65ef5a 100644 --- a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/part2/output-info.ini +++ b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer-cache/part4/output-info.ini diff --git a/Software/Visual_Studio/Build/Shortcuts/Machine Emulator.lnk b/Software/Visual_Studio/Build/Shortcuts/Machine Emulator.lnk Binary files differindex 2adce19ff..9c6368954 100644 --- a/Software/Visual_Studio/Build/Shortcuts/Machine Emulator.lnk +++ b/Software/Visual_Studio/Build/Shortcuts/Machine Emulator.lnk diff --git a/Software/Visual_Studio/Build/Shortcuts/Machine Studio.lnk b/Software/Visual_Studio/Build/Shortcuts/Machine Studio.lnk Binary files differindex 2966f595d..87ec99d02 100644 --- a/Software/Visual_Studio/Build/Shortcuts/Machine Studio.lnk +++ b/Software/Visual_Studio/Build/Shortcuts/Machine Studio.lnk diff --git a/Software/Visual_Studio/Build/Shortcuts/Proto Compiler GUI.lnk b/Software/Visual_Studio/Build/Shortcuts/Proto Compiler GUI.lnk Binary files differindex a6654b9a4..74475c931 100644 --- a/Software/Visual_Studio/Build/Shortcuts/Proto Compiler GUI.lnk +++ b/Software/Visual_Studio/Build/Shortcuts/Proto Compiler GUI.lnk diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest index d72e75011..efc5f8179 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest @@ -16,7 +16,7 @@ Remove this element if your application requires this virtualization for backwards compatibility. --> - <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> + <!--<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />--> </requestedPrivileges> </security> </trustInfo> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.WatchDog/MainWindowVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.WatchDog/MainWindowVM.cs index 466c178a2..0693b0931 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.WatchDog/MainWindowVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.WatchDog/MainWindowVM.cs @@ -107,10 +107,19 @@ namespace Tango.PPC.WatchDog try { - Process.Start(Path.Combine(AssemblyHelper.GetCurrentAssemblyFolder(), tango_process_name + ".exe")); + var process = Process.Start(Path.Combine(AssemblyHelper.GetCurrentAssemblyFolder(), tango_process_name + ".exe")); LogManager.Log("PPC application started."); - Thread.Sleep(5000); - _watchdog.Start(); + LogManager.Log("Waiting for the application to enter an idle state...."); + if (process.WaitForInputIdle((int)TimeSpan.FromMinutes(1).TotalMilliseconds)) + { + LogManager.Log("Application is in idle state. waiting another 10 seconds..."); + Thread.Sleep(TimeSpan.FromSeconds(10)); + _watchdog.Start(); + } + else + { + LogManager.Log("The PPC application did not enter to an idle state within 1 minute. The Watchdog will not start again!"); + } } catch (Exception ex) { diff --git a/Software/Visual_Studio/Tango.AdvancedInstaller/InstallerBuilder.cs b/Software/Visual_Studio/Tango.AdvancedInstaller/InstallerBuilder.cs index c9c5f73c3..ed52aeb05 100644 --- a/Software/Visual_Studio/Tango.AdvancedInstaller/InstallerBuilder.cs +++ b/Software/Visual_Studio/Tango.AdvancedInstaller/InstallerBuilder.cs @@ -11,34 +11,91 @@ namespace Tango.AdvancedInstaller { public String AdvancedInstallerPath { get; set; } - public String ProjectFile { get; set; } + public String ProjectFile { get; private set; } - public String OutputFolder { get; set; } + private InstallerBuilder() + { + AdvancedInstallerPath = @"C:\Program Files (x86)\Caphyon\Advanced Installer 15.6\bin\x86\AdvancedInstaller.com"; + } - public String ProductVersion { get; set; } + public InstallerBuilder(String projectFile) : this() + { + ProjectFile = projectFile; + } - public String ProductName { get; set; } + public InstallerBuilder(String advancedInstallerPath, String projectFile) : this(projectFile) + { + AdvancedInstallerPath = advancedInstallerPath; + } - public PackageType PackageType { get; set; } + public Task<String> GetProperty(ProjectProperty property) + { + return Task.Factory.StartNew<String>(() => + { + CmdCommand command = new CmdCommand(AdvancedInstallerPath, $"/edit \"{ProjectFile}\" /GetProperty {property.ToString()}"); + var result = command.Run().Result; + return result.StandardOutput.Replace("\r", "").Replace("\n", ""); + }); + } - public InstallerBuilder() + public Task SetProperty(ProjectProperty property, String value) { - AdvancedInstallerPath = @"C:\Program Files (x86)\Caphyon\Advanced Installer 15.6\bin\x86\advinst.exe"; + return Task.Factory.StartNew(() => + { + CmdCommand command = new CmdCommand(AdvancedInstallerPath, $"/edit \"{ProjectFile}\" /SetProperty {property.ToString()}=\"{value}\""); + command.Run().Wait(); + + String propValue = GetProperty(property).Result; + + if (propValue != value) + { + throw new ArgumentException("The property set command had succeeded but the property value validation has failed."); + } + }); } - public Task Build() + public Task Build(String productVersion, String outputFile) { return Task.Factory.StartNew(() => { - CmdCommand command = new CmdCommand(AdvancedInstallerPath, $"/edit \"{ProjectFile}\" /SetVersion {ProductVersion}"); + CmdCommand command = new CmdCommand(AdvancedInstallerPath, $"/edit \"{ProjectFile}\" /SetVersion {productVersion}"); command.Run().Wait(); - command = new CmdCommand(AdvancedInstallerPath, $"/edit \"{ProjectFile}\" /SetPackageName \"{OutputFolder}\\{ProductName}_v{ProductVersion}.{PackageType.ToString().ToLower()}\" -buildname DefaultBuild"); + command = new CmdCommand(AdvancedInstallerPath, $"/edit \"{ProjectFile}\" /SetPackageName \"{outputFile}\" -buildname DefaultBuild"); command.Run().Wait(); command = new CmdCommand(AdvancedInstallerPath, $"/rebuild \"{ProjectFile}\""); + command.Timeout = TimeSpan.FromMinutes(2); + command.Run().Wait(); + }); + } + + public Task Uninstall() + { + return Task.Factory.StartNew(() => + { + String productName = GetProperty(ProjectProperty.ProductName).Result; + CmdCommand command = new CmdCommand("wmic", $"product where name=\"{productName}\" call uninstall /nointeractive"); + command.ExitStrategy = CmdCommand.ExitStrategies.StandardOutput; command.Run().Wait(); }); } + + public Task<bool> IsInstalled() + { + return Task.Factory.StartNew<bool>(() => + { + String productName = GetProperty(ProjectProperty.ProductName).Result; + CmdCommand command = new CmdCommand("wmic", $"product get name"); + command.ExitStrategy = CmdCommand.ExitStrategies.StandardOutput; + var result = command.Run().Result; + + List<String> list = result.StandardOutput.Split(new[] { '\r', '\n' }).ToList(); + + bool found = list.Any(x => x.Trim() == productName); + + return found; + }); + } } } diff --git a/Software/Visual_Studio/Tango.AdvancedInstaller/PackageType.cs b/Software/Visual_Studio/Tango.AdvancedInstaller/PackageType.cs deleted file mode 100644 index 75120665c..000000000 --- a/Software/Visual_Studio/Tango.AdvancedInstaller/PackageType.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.AdvancedInstaller -{ - public enum PackageType - { - MSI, - EXE, - } -} diff --git a/Software/Visual_Studio/Tango.AdvancedInstaller/ProjectProperty.cs b/Software/Visual_Studio/Tango.AdvancedInstaller/ProjectProperty.cs new file mode 100644 index 000000000..ea9112dd3 --- /dev/null +++ b/Software/Visual_Studio/Tango.AdvancedInstaller/ProjectProperty.cs @@ -0,0 +1,216 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.AdvancedInstaller +{ + public enum ProjectProperty + { + ACTION, + ADDDEFAULT, + ADDLOCAL, + ADDSOURCE, + AdminProperties, + AdminToolsFolder, + AdminUser, + ADVERTISE, + AFTERREBOOT, + ALLUSERS, + Alpha, + AppDataFolder, + ARPAUTHORIZEDCDFPREFIX, + ARPCOMMENTS, + ARPCONTACT, + ARPHELPLINK, + ARPHELPTELEPHONE, + ARPINSTALLLOCATION, + ARPNOMODIFY, + ARPNOREMOVE, + ARPNOREPAIR, + ARPPRODUCTICON, + ARPREADME, + ARPSIZE, + ARPSYSTEMCOMPONENT, + ARPURLINFOABOUT, + ARPURLUPDATEINFO, + AVAILABLEFREEREG, + BorderSide, + BorderTop, + CaptionHeight, + CCP_DRIVE, + ColorBits, + CommonAppDataFolder, + CommonFiles64Folder, + CommonFilesFolder, + COMPADDDEFAULT, + COMPADDLOCAL, + COMPADDSOURCE, + COMPANYNAME, + ComputerName, + CostingComplete, + Date, + DefaultUIFont, + DesktopFolder, + DISABLEADVTSHORTCUTS, + DISABLEMEDIA, + DISABLEROLLBACK, + DiskPrompt, + EnableUserControl, + EXECUTEACTION, + EXECUTEMODE, + FASTOEM, + FavoritesFolder, + FILEADDDEFAULT, + FILEADDLOCAL, + FILEADDSOURCE, + FontsFolder, + Installed, + INSTALLLEVEL, + Intel, + Intel64, + IsAdminPackage, + LeftUnit, + LIMITUI, + LocalAppDataFolder, + LOGACTION, + LogonUser, + Manufacturer, + MEDIAPACKAGEPATH, + MediaSourceDir, + MSIARPSETTINGSIDENTIFIER, + MSICHECKCRCS, + MSIDEPLOYMENTCOMPLIANT, + MSIDISABLEEEUI, + MSIDISABLELUAPATCHING, + MSIDISABLERMRESTART, + MSIENFORCEUPGRADECOMPONENTRULES, + MSIFASTINSTALL, + MsiHiddenProperties, + MSIINSTALLPERUSER, + MSIINSTANCEGUID, + MsiLogFileLocation, + MsiLogging, + MsiNetAssemblySupport, + MSINEWINSTANCE, + MSINODISABLEMEDIA, + MsiNTProductType, + MsiNTSuiteBackOffice, + MsiNTSuiteDataCenter, + MsiNTSuiteEnterprise, + MsiNTSuitePersonal, + MsiNTSuiteSmallBusiness, + MsiNTSuiteSmallBusinessRestricted, + MsiNTSuiteWebServer, + MsiPatchRemovalList, + MSIPATCHREMOVE, + MSIRESTARTMANAGERCONTROL, + MsiRestartManagerSessionKey, + MSIRMSHUTDOWN, + MsiRunningElevated, + MsiSystemRebootPending, + MsiTabletPC, + MsiUIHideCancel, + MsiUIProgressOnly, + MsiUISourceResOnly, + MSIUNINSTALLSUPERSEDEDCOMPONENTS, + MSIUSEREALADMINDETECTION, + MsiWin32AssemblySupport, + Msix64, + MyPicturesFolder, + NetHoodFolder, + NOCOMPANYNAME, + NOUSERNAME, + OLEAdvtSupport, + OriginalDatabase, + OutOfDiskSpace, + OutOfNoRbDiskSpace, + ParentOriginalDatabase, + ParentProductCode, + PATCH, + PATCHNEWPACKAGECODE, + PATCHNEWSUMMARYCOMMENTS, + PATCHNEWSUMMARYSUBJECT, + PersonalFolder, + PhysicalMemory, + PIDKEY, + PIDTemplate, + Preselected, + PRIMARYFOLDER, + PrimaryVolumePath, + PrimaryVolumeSpaceAvailable, + PrimaryVolumeSpaceRemaining, + PrimaryVolumeSpaceRequired, + PrintHoodFolder, + Privileged, + ProductCode, + ProductID, + ProductLanguage, + ProductName, + ProductState, + ProductVersion, + ProgramFiles64Folder, + ProgramFilesFolder, + ProgramMenuFolder, + PROMPTROLLBACKCOST, + REBOOT, + REBOOTPROMPT, + RecentFolder, + RedirectedDLLSupport, + REINSTALL, + REINSTALLMODE, + RemoteAdminTS, + REMOVE, + ReplacedInUseFiles, + RestrictedUserControl, + RESUME, + RollbackDisabled, + ROOTDRIVE, + ScreenX, + ScreenY, + SecureCustomProperties, + SendToFolder, + SEQUENCE, + ServicePackLevel, + ServicePackLevelMinor, + SharedWindows, + ShellAdvtSupport, + SHORTFILENAMES, + SourceDir, + SOURCELIST, + StartMenuFolder, + StartupFolder, + System16Folder, + System64Folder, + SystemFolder, + SystemLanguageID, + TARGETDIR, + TempFolder, + TemplateFolder, + TerminalServer, + TextHeight, + Time, + TRANSFORMS, + TRANSFORMSATSOURCE, + TRANSFORMSSECURE, + TTCSupport, + UILevel, + UpdateStarted, + UpgradeCode, + UPGRADINGPRODUCTCODE, + UserLanguageID, + USERNAME, + UserSID, + Version9X, + VersionDatabase, + VersionMsi, + VersionNT, + VersionNT64, + VirtualMemory, + WindowsBuild, + WindowsFolder, + WindowsVolume, + + } +} diff --git a/Software/Visual_Studio/Tango.AdvancedInstaller/Tango.AdvancedInstaller.csproj b/Software/Visual_Studio/Tango.AdvancedInstaller/Tango.AdvancedInstaller.csproj index 2062df763..766cf51c3 100644 --- a/Software/Visual_Studio/Tango.AdvancedInstaller/Tango.AdvancedInstaller.csproj +++ b/Software/Visual_Studio/Tango.AdvancedInstaller/Tango.AdvancedInstaller.csproj @@ -45,7 +45,7 @@ <Link>GlobalVersionInfo.cs</Link> </Compile> <Compile Include="InstallerBuilder.cs" /> - <Compile Include="PackageType.cs" /> + <Compile Include="ProjectProperty.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="ReturnCodes.cs" /> </ItemGroup> diff --git a/Software/Visual_Studio/Tango.Core/Components/CmdCommand.cs b/Software/Visual_Studio/Tango.Core/Components/CmdCommand.cs index ef8c913eb..bbd954fd4 100644 --- a/Software/Visual_Studio/Tango.Core/Components/CmdCommand.cs +++ b/Software/Visual_Studio/Tango.Core/Components/CmdCommand.cs @@ -17,6 +17,19 @@ namespace Tango.Core.Components Unicode, } + public enum ExitStrategies + { + WaitForExit, + StandardOutput, + } + + public class CmdCommandResult + { + public String StandardOutput { get; set; } + public String StandardError { get; set; } + public int ExitCode { get; set; } + } + private Process _process; public String Arguments { get; set; } @@ -25,10 +38,10 @@ namespace Tango.Core.Components public String WorkingDir { get; set; } - public int ExitCode { get; set; } - public OutEncoding OutputEncoding { get; set; } + public ExitStrategies ExitStrategy { get; set; } + public CmdCommand(String processName, String arguments) { Timeout = TimeSpan.FromSeconds(5); @@ -51,15 +64,19 @@ namespace Tango.Core.Components Arguments = arguments; } - public Task Run() + public Task<CmdCommandResult> Run() { - return Task.Factory.StartNew(() => + return Task.Factory.StartNew<CmdCommandResult>(() => { LogManager.Log($"Starting process {_process.StartInfo.FileName} with arguments {Arguments}..."); _process.Start(); - _process.WaitForExit((int)Timeout.TotalMilliseconds); - if (_process.HasExited) + if (ExitStrategy == ExitStrategies.WaitForExit) + { + _process.WaitForExit((int)Timeout.TotalMilliseconds); + } + + if (_process.HasExited || ExitStrategy == ExitStrategies.StandardOutput) { String output = _process.StandardOutput.ReadToEnd(); String error = _process.StandardError.ReadToEnd(); @@ -77,12 +94,17 @@ namespace Tango.Core.Components LogManager.Log($"Process Standard Output:\n{output}"); LogManager.Log($"Process Standard Error:\n{error}"); - ExitCode = _process.ExitCode; - if (_process.ExitCode != 0) { throw new IOException($"The process {_process.StartInfo.FileName} has exited with the code {_process.ExitCode}."); } + + return new CmdCommandResult() + { + StandardOutput = output, + StandardError = error, + ExitCode = _process.ExitCode, + }; } else { diff --git a/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/AdvancedInstaller_TST.cs b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/AdvancedInstaller_TST.cs index 60a047c0c..b883db7b7 100644 --- a/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/AdvancedInstaller_TST.cs +++ b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/AdvancedInstaller_TST.cs @@ -5,6 +5,7 @@ using System.Diagnostics; using System.IO; using System.Linq; using System.Text; +using System.Threading; using System.Threading.Tasks; using Tango.AdvancedInstaller; using Tango.Core.IO; @@ -16,30 +17,52 @@ namespace Tango.UnitTesting.AdvancedInstaller public class AdvancedInstaller_TST { [TestMethod] - public void Set_Version_and_Package_name_And_Build() + public void Build_Install_Verify() { - InstallerBuilder builder = new InstallerBuilder(); - var demo_project_path = Directory.GetCurrentDirectory() + "\\AdvancedInstaller\\DemoProject"; var project_Path = Path.Combine(demo_project_path, "DemoProject.aip"); var files_path = Path.Combine(demo_project_path, "Files"); var added_file = files_path + "\\addedFile.txt"; + InstallerBuilder builder = new InstallerBuilder(project_Path); + File.WriteAllText(added_file, "Added File!"); var output_folder = TemporaryManager.Default.CreateFolder(); - builder.ProjectFile = project_Path; - builder.OutputFolder = output_folder; - builder.ProductName = "TEST TEST TEST"; - builder.ProductVersion = "2.0.0.0"; - builder.PackageType = PackageType.MSI; + String product_name = builder.GetProperty(ProjectProperty.ProductName).Result; + String manufacturer = builder.GetProperty(ProjectProperty.Manufacturer).Result; - builder.Build().Wait(); + var output_file = output_folder + "\\" + product_name + " Installer_v2.0.0.msi"; + + builder.Build("2.0.0", output_file).Wait(); File.Delete(added_file); - output_folder.Display(); + Assert.IsTrue(File.Exists(output_file)); + + var process = Process.Start(output_file); + process.WaitForExit(); + + File.Delete(output_file); + + String installationFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), manufacturer, product_name); + + Assert.IsTrue(File.Exists(Path.Combine(installationFolder, Path.GetFileName(added_file)))); + + Thread.Sleep(2000); + + bool installed = builder.IsInstalled().Result; + + Assert.IsTrue(installed); + + builder.Uninstall().Wait(); + + Thread.Sleep(2000); + + installed = builder.IsInstalled().Result; + + Assert.IsFalse(installed); } } } diff --git a/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject-cache/cacheIndex.txt b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject-cache/cacheIndex.txt Binary files differnew file mode 100644 index 000000000..5fe5afe5a --- /dev/null +++ b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject-cache/cacheIndex.txt diff --git a/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject-cache/part1/disk1.cab b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject-cache/part1/disk1.cab Binary files differnew file mode 100644 index 000000000..c376f83d7 --- /dev/null +++ b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject-cache/part1/disk1.cab diff --git a/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject-cache/part1/output-info.ini b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject-cache/part1/output-info.ini Binary files differnew file mode 100644 index 000000000..3586cb103 --- /dev/null +++ b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject-cache/part1/output-info.ini diff --git a/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject.aip b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject.aip index a4889c4c0..10abc0933 100644 --- a/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject.aip +++ b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/DemoProject.aip @@ -5,8 +5,10 @@ </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent"> <ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/> - <ROW Property="ALLUSERS" Value="1"/> + <ROW Property="ALLUSERS" Value="1" MultiBuildValue="DefaultBuild:"/> <ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/> + <ROW Property="ARPNOMODIFY" MultiBuildValue="DefaultBuild:1"/> + <ROW Property="LIMITUI" MultiBuildValue="DefaultBuild:1"/> <ROW Property="Manufacturer" Value="Twine"/> <ROW Property="ProductCode" Value="1033:{C26BE216-84DB-452A-BA46-F927A7F87F39} " Type="16"/> <ROW Property="ProductLanguage" Value="1033"/> @@ -101,7 +103,7 @@ <ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/> <ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/> <ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/> - <ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]"/> + <ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]" MultiBuildTarget="DefaultBuild:[AppDataFolder][Manufacturer]\[ProductName]"/> <ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/> <ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/> </COMPONENT> @@ -137,6 +139,6 @@ <ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.SynchronizedFolderComponent"> - <ROW Directory_="APPDIR" SourcePath="Files" ExcludePattern="*~|#*#|%*%|._|CVS|.cvsignore|SCCS|vssver.scc|mssccprj.scc|vssver2.scc|.svn|.DS_Store" ExcludeFlags="6"/> + <ROW Directory_="APPDIR" SourcePath="Files" Feature="MainFeature" ExcludePattern="*~|#*#|%*%|._|CVS|.cvsignore|SCCS|vssver.scc|mssccprj.scc|vssver2.scc|.svn|.DS_Store" ExcludeFlags="6"/> </COMPONENT> </DOCUMENT> diff --git a/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/Setup Files/DemoProject.msi b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/Setup Files/DemoProject.msi Binary files differnew file mode 100644 index 000000000..9803733dc --- /dev/null +++ b/Software/Visual_Studio/Tango.UnitTesting/AdvancedInstaller/DemoProject/Setup Files/DemoProject.msi diff --git a/Software/Visual_Studio/Tango.UnitTesting/Tango.UnitTesting.csproj b/Software/Visual_Studio/Tango.UnitTesting/Tango.UnitTesting.csproj index 357a2344b..4e852fed8 100644 --- a/Software/Visual_Studio/Tango.UnitTesting/Tango.UnitTesting.csproj +++ b/Software/Visual_Studio/Tango.UnitTesting/Tango.UnitTesting.csproj @@ -118,7 +118,7 @@ </ItemGroup> <ItemGroup> <Content Include="AdvancedInstaller\DemoProject\DemoProject.aip"> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> <None Include="App.config" /> <None Include="packages.config" /> @@ -242,7 +242,7 @@ <Import Project="..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets')" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file |
