Replaced all direct Directory.Delete calls by our new custom FileSystemUtilities.TryDeleteDirectory class and method for safer and more robust directory deletion throughout the codebase with automatic retries (3x 150ms), recursive deletion, handling of read-only attributes, rename-then-delete fallback, and better error handling. Also moved the WebView cleanup to happen earlier on initialization, before creation of the WebView environment
379 lines
18 KiB
XML
379 lines
18 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<Import Project="packages\Costura.Fody.5.7.0\build\Costura.Fody.props" Condition="Exists('packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" />
|
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
<PropertyGroup>
|
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
<ProjectGuid>{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}</ProjectGuid>
|
|
<OutputType>WinExe</OutputType>
|
|
<RootNamespace>AndroidSideloader</RootNamespace>
|
|
<AssemblyName>AndroidSideloader</AssemblyName>
|
|
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
|
<FileAlignment>512</FileAlignment>
|
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
|
<Deterministic>true</Deterministic>
|
|
<NuGetPackageImportStamp>
|
|
</NuGetPackageImportStamp>
|
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
|
<PublishUrl>publish\</PublishUrl>
|
|
<Install>true</Install>
|
|
<InstallFrom>Disk</InstallFrom>
|
|
<UpdateEnabled>false</UpdateEnabled>
|
|
<UpdateMode>Foreground</UpdateMode>
|
|
<UpdateInterval>7</UpdateInterval>
|
|
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
|
<UpdatePeriodically>false</UpdatePeriodically>
|
|
<UpdateRequired>false</UpdateRequired>
|
|
<MapFileExtensions>true</MapFileExtensions>
|
|
<ApplicationRevision>0</ApplicationRevision>
|
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
|
<UseApplicationTrust>false</UseApplicationTrust>
|
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
|
<TargetFrameworkProfile />
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<UseShortFileNames>True</UseShortFileNames>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<IntermediateOutputPath>C:\Sideloader</IntermediateOutputPath>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<DebugType>full</DebugType>
|
|
<Optimize>false</Optimize>
|
|
<OutputPath>bin\Debug\</OutputPath>
|
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<WarningLevel>4</WarningLevel>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
<DebugType>pdbonly</DebugType>
|
|
<Optimize>true</Optimize>
|
|
<OutputPath>bin\Release\</OutputPath>
|
|
<DefineConstants>TRACE</DefineConstants>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<WarningLevel>4</WarningLevel>
|
|
<Prefer32Bit>true</Prefer32Bit>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<ApplicationIcon>icon.ico</ApplicationIcon>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<StartupObject>AndroidSideloader.Program</StartupObject>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<OutputPath>bin\x64\Debug\</OutputPath>
|
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
<DebugType>full</DebugType>
|
|
<PlatformTarget>x64</PlatformTarget>
|
|
<LangVersion>7.3</LangVersion>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
<Prefer32Bit>true</Prefer32Bit>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
|
<OutputPath>bin\x64\Release\</OutputPath>
|
|
<DefineConstants>TRACE</DefineConstants>
|
|
<Optimize>true</Optimize>
|
|
<DebugType>pdbonly</DebugType>
|
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
<LangVersion>7.3</LangVersion>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'x86|AnyCPU'">
|
|
<OutputPath>bin\x86\</OutputPath>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'x86|x64'">
|
|
<OutputPath>bin\x64\x86\</OutputPath>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<OutputPath>bin\x86\Debug\</OutputPath>
|
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
<DebugType>full</DebugType>
|
|
<PlatformTarget>x86</PlatformTarget>
|
|
<LangVersion>7.3</LangVersion>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
<Prefer32Bit>true</Prefer32Bit>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
|
<OutputPath>bin\x86\Release\</OutputPath>
|
|
<DefineConstants>TRACE</DefineConstants>
|
|
<Optimize>true</Optimize>
|
|
<DebugType>pdbonly</DebugType>
|
|
<PlatformTarget>x86</PlatformTarget>
|
|
<LangVersion>7.3</LangVersion>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'x86|x86'">
|
|
<OutputPath>bin\x86\x86\</OutputPath>
|
|
<PlatformTarget>x86</PlatformTarget>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<SignAssembly>false</SignAssembly>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<AssemblyOriginatorKeyFile>
|
|
</AssemblyOriginatorKeyFile>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<DelaySign>false</DelaySign>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<SignManifests>false</SignManifests>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<ManifestCertificateThumbprint>2596B6735D27EAE6BD754AC8A5249B9EAE39122F</ManifestCertificateThumbprint>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<ManifestKeyFile>AndroidSideloader_TemporaryKey.pfx</ManifestKeyFile>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<Reference Include="AdvancedSharpAdbClient, Version=3.5.15.0, Culture=neutral, processorArchitecture=MSIL">
|
|
<HintPath>packages\AdvancedSharpAdbClient.3.5.15\lib\net45\AdvancedSharpAdbClient.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="Costura, Version=5.7.0.0, Culture=neutral, processorArchitecture=MSIL">
|
|
<HintPath>packages\Costura.Fody.5.7.0\lib\netstandard1.0\Costura.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="Microsoft.Web.WebView2.Core, Version=1.0.2478.35, Culture=neutral, PublicKeyToken=2a8ab48044d2601e, processorArchitecture=MSIL">
|
|
<HintPath>packages\Microsoft.Web.WebView2.1.0.2478.35\lib\net45\Microsoft.Web.WebView2.Core.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="Microsoft.Web.WebView2.WinForms, Version=1.0.2478.35, Culture=neutral, PublicKeyToken=2a8ab48044d2601e, processorArchitecture=MSIL">
|
|
<HintPath>packages\Microsoft.Web.WebView2.1.0.2478.35\lib\net45\Microsoft.Web.WebView2.WinForms.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="Microsoft.Web.WebView2.Wpf, Version=1.0.2478.35, Culture=neutral, PublicKeyToken=2a8ab48044d2601e, processorArchitecture=MSIL">
|
|
<HintPath>packages\Microsoft.Web.WebView2.1.0.2478.35\lib\net45\Microsoft.Web.WebView2.Wpf.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
|
<HintPath>packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="SergeUtils">
|
|
<HintPath>.\SergeUtils.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="System">
|
|
<HintPath>..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="System.ComponentModel.Composition" />
|
|
<Reference Include="System.Core" />
|
|
<Reference Include="System.DirectoryServices" />
|
|
<Reference Include="System.IO.Compression" />
|
|
<Reference Include="System.Management" />
|
|
<Reference Include="System.Numerics" />
|
|
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
<HintPath>packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="System.Xml.Linq" />
|
|
<Reference Include="System.Data.DataSetExtensions" />
|
|
<Reference Include="Microsoft.CSharp" />
|
|
<Reference Include="System.Data" />
|
|
<Reference Include="System.Deployment" />
|
|
<Reference Include="System.Drawing">
|
|
<HintPath>..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Drawing.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="System.Net.Http" />
|
|
<Reference Include="System.Windows.Forms" />
|
|
<Reference Include="System.Xml" />
|
|
<Reference Include="WindowsBase" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Compile Include="ADB.cs" />
|
|
<Compile Include="AdbCommandForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="GalleryView.cs">
|
|
<SubType>Component</SubType>
|
|
</Compile>
|
|
<Compile Include="ModernListView.cs" />
|
|
<Compile Include="ModernProgessBar.cs">
|
|
<SubType>Component</SubType>
|
|
</Compile>
|
|
<Compile Include="ModernQueuePanel.cs">
|
|
<SubType>Component</SubType>
|
|
</Compile>
|
|
<Compile Include="Properties\Resources.Designer.cs">
|
|
<AutoGen>True</AutoGen>
|
|
<DesignTime>True</DesignTime>
|
|
<DependentUpon>Resources.resx</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="RoundButton.cs">
|
|
<SubType>Component</SubType>
|
|
</Compile>
|
|
<Compile Include="ColumnSort.cs" />
|
|
<Compile Include="Donors.cs" />
|
|
<Compile Include="DonorsListView.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="DonorsListView.Designer.cs">
|
|
<DependentUpon>DonorsListView.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="FlexibleMessageBox.cs" />
|
|
<Compile Include="RoundedRectangleF.cs" />
|
|
<Compile Include="Settings.cs" />
|
|
<Compile Include="Sideloader\GetDependencies.cs" />
|
|
<Compile Include="Models\PublicConfig.cs" />
|
|
<Compile Include="NewApps.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="NewApps.Designer.cs">
|
|
<DependentUpon>NewApps.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="ToggleSwitch.cs">
|
|
<SubType>Component</SubType>
|
|
</Compile>
|
|
<Compile Include="Transparenter.cs" />
|
|
<Compile Include="UpdateForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="UpdateForm.Designer.cs">
|
|
<DependentUpon>UpdateForm.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="MainForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="MainForm.Designer.cs">
|
|
<DependentUpon>MainForm.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="Sideloader\ProcessOutput.cs" />
|
|
<Compile Include="Sideloader\RCLONE.cs" />
|
|
<Compile Include="Sideloader\Utilities.cs" />
|
|
<Compile Include="Utilities\DnsHelper.cs" />
|
|
<Compile Include="Utilities\FileSystemUtilities.cs" />
|
|
<Compile Include="Utilities\Logger.cs" />
|
|
<Compile Include="QuestForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="QuestForm.Designer.cs">
|
|
<DependentUpon>QuestForm.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="RCLONE.cs" />
|
|
<Compile Include="SettingsForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="SettingsForm.Designer.cs">
|
|
<DependentUpon>SettingsForm.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="Sideloader.cs" />
|
|
<Compile Include="Updater.cs" />
|
|
<Compile Include="UsernameForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="UsernameForm.Designer.cs">
|
|
<DependentUpon>UsernameForm.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="Program.cs" />
|
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
<Compile Include="SelectFolder.cs" />
|
|
<Compile Include="Utilities\SettingsManager.cs" />
|
|
<Compile Include="Utilities\StringUtilities.cs" />
|
|
<Compile Include="Utilities\GeneralUtilities.cs" />
|
|
<Compile Include="Utilities\UpdateGameData.cs" />
|
|
<Compile Include="Utilities\UploadGame.cs" />
|
|
<Compile Include="Utilities\Zip.cs" />
|
|
<Compile Include="Utilities\Metrics.cs" />
|
|
<EmbeddedResource Include="DonorsListView.resx">
|
|
<DependentUpon>DonorsListView.cs</DependentUpon>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="NewApps.resx">
|
|
<DependentUpon>NewApps.cs</DependentUpon>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="UpdateForm.resx">
|
|
<DependentUpon>UpdateForm.cs</DependentUpon>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="MainForm.resx">
|
|
<DependentUpon>MainForm.cs</DependentUpon>
|
|
<SubType>Designer</SubType>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="Properties\Resources.resx">
|
|
<Generator>PublicResXFileCodeGenerator</Generator>
|
|
<SubType>Designer</SubType>
|
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="QuestForm.resx">
|
|
<DependentUpon>QuestForm.cs</DependentUpon>
|
|
<SubType>Designer</SubType>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="SettingsForm.resx">
|
|
<DependentUpon>SettingsForm.cs</DependentUpon>
|
|
<SubType>Designer</SubType>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="UsernameForm.resx">
|
|
<DependentUpon>UsernameForm.cs</DependentUpon>
|
|
<SubType>Designer</SubType>
|
|
</EmbeddedResource>
|
|
<None Include="codenames" />
|
|
<None Include="packages.config" />
|
|
<None Include="Properties\DataSources\AndroidSideloader.Properties.Resources.datasource" />
|
|
<None Include="Properties\DataSources\AndroidSideloader.Properties.Settings.datasource" />
|
|
<None Include="Properties\Settings.settings">
|
|
<Generator>SettingsSingleFileGenerator</Generator>
|
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
|
</None>
|
|
<Compile Include="Properties\Settings.Designer.cs">
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>Settings.settings</DependentUpon>
|
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
|
</Compile>
|
|
<None Include="Rookie Offline.cmd">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
<None Include="CleanupInstall.cmd">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
<None Include="AddDefenderExceptions.ps1">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
<None Include="version" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<None Include="App.config" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Content Include="changelog.txt" />
|
|
<Content Include="icon.ico" />
|
|
<Content Include="ChangelogHistory.txt" />
|
|
<None Include="Resources\battery.png" />
|
|
<None Include="Resources\ajax-loader.gif" />
|
|
<None Include="Resources\SearchGlass.PNG" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
|
|
<Visible>False</Visible>
|
|
<ProductName>Microsoft .NET Framework 4.5.2 %28x86 and x64%29</ProductName>
|
|
<Install>true</Install>
|
|
</BootstrapperPackage>
|
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
|
<Install>false</Install>
|
|
</BootstrapperPackage>
|
|
</ItemGroup>
|
|
<ItemGroup />
|
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
|
<PropertyGroup>
|
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
|
</PropertyGroup>
|
|
<Error Condition="!Exists('packages\Microsoft.Web.WebView2.1.0.2478.35\build\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Web.WebView2.1.0.2478.35\build\Microsoft.Web.WebView2.targets'))" />
|
|
<Error Condition="!Exists('packages\Fody.6.8.1\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Fody.6.8.1\build\Fody.targets'))" />
|
|
<Error Condition="!Exists('packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Costura.Fody.5.7.0\build\Costura.Fody.props'))" />
|
|
<Error Condition="!Exists('packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Costura.Fody.5.7.0\build\Costura.Fody.targets'))" />
|
|
</Target>
|
|
<PropertyGroup>
|
|
<PreBuildEvent>
|
|
</PreBuildEvent>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<PostBuildEvent>
|
|
</PostBuildEvent>
|
|
</PropertyGroup>
|
|
<Import Project="packages\Microsoft.Web.WebView2.1.0.2478.35\build\Microsoft.Web.WebView2.targets" Condition="Exists('packages\Microsoft.Web.WebView2.1.0.2478.35\build\Microsoft.Web.WebView2.targets')" />
|
|
<Import Project="packages\Fody.6.8.1\build\Fody.targets" Condition="Exists('packages\Fody.6.8.1\build\Fody.targets')" />
|
|
<Import Project="packages\Costura.Fody.5.7.0\build\Costura.Fody.targets" Condition="Exists('packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" />
|
|
</Project> |