Design: Use the plain string for both config and hotkey parsing and make use of KeyConverter, ModifierKeysConverter to make it more rubust. Find corresponding label (to display operation result) and callback (to do the real work) based on textbox name. In this case, they should be named as `<Feature-Name><Control-Name>`. ShowLogsTextBox, ShowLogsLabel, ShowLogsCallback. If this requirement doesn't meet, throw an exception at runtime. Logic: How to input keys: 1. put focus in the corresponding textbox 2. press the key combination you want to use 3. when you think it is ready, release all keys 4. the textbox shows your input How to change keys: 1. put focus in the corresponding textbox 2. press BackSpace to clear content 3. re-input new one How to deactivate: 1. clear content in the textbox 2. press OK button Meaning of label color: - Green: this combination is not occupied by other programs and register successfully - Yellow: this combination is occupied by other programs and you have to change to another one - Transparent without color: initial status Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
381 lines
19 KiB
XML
381 lines
19 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup>
|
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
<ProductVersion>9.0.21022</ProductVersion>
|
|
<SchemaVersion>2.0</SchemaVersion>
|
|
<ProjectGuid>{8C02D2F7-7CDB-4D55-9F25-CD03EF4AA062}</ProjectGuid>
|
|
<OutputType>WinExe</OutputType>
|
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
<RootNamespace>Shadowsocks</RootNamespace>
|
|
<AssemblyName>Shadowsocks</AssemblyName>
|
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
|
<FileAlignment>512</FileAlignment>
|
|
<StartupObject>
|
|
</StartupObject>
|
|
<ApplicationIcon>shadowsocks.ico</ApplicationIcon>
|
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
|
<FileUpgradeFlags>
|
|
</FileUpgradeFlags>
|
|
<UpgradeBackupLocation>
|
|
</UpgradeBackupLocation>
|
|
<OldToolsVersion>3.5</OldToolsVersion>
|
|
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
|
|
<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>1</ApplicationRevision>
|
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
|
<UseApplicationTrust>false</UseApplicationTrust>
|
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
|
<NuGetPackageImportStamp>
|
|
</NuGetPackageImportStamp>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<OutputPath>bin\x86\Debug\</OutputPath>
|
|
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
|
<DebugType>full</DebugType>
|
|
<PlatformTarget>x86</PlatformTarget>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<CodeAnalysisRuleSet>ManagedMinimumRules.ruleset</CodeAnalysisRuleSet>
|
|
<Prefer32Bit>false</Prefer32Bit>
|
|
<Optimize>false</Optimize>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
|
<OutputPath>bin\x86\Release\</OutputPath>
|
|
<DefineConstants>TRACE</DefineConstants>
|
|
<Optimize>true</Optimize>
|
|
<DebugType>pdbonly</DebugType>
|
|
<PlatformTarget>x86</PlatformTarget>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<CodeAnalysisRuleSet>ManagedMinimumRules.ruleset</CodeAnalysisRuleSet>
|
|
<Prefer32Bit>false</Prefer32Bit>
|
|
<DebugSymbols>true</DebugSymbols>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<Reference Include="GlobalHotKey, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
|
|
<HintPath>3rd\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath>
|
|
<Private>True</Private>
|
|
</Reference>
|
|
<Reference Include="Microsoft.CSharp" />
|
|
<Reference Include="Microsoft.VisualBasic" />
|
|
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
|
<HintPath>3rd\Newtonsoft.Json.9.0.1\lib\net40\Newtonsoft.Json.dll</HintPath>
|
|
<Private>True</Private>
|
|
</Reference>
|
|
<Reference Include="PresentationCore" />
|
|
<Reference Include="PresentationFramework" />
|
|
<Reference Include="System" />
|
|
<Reference Include="System.Data" />
|
|
<Reference Include="System.Drawing" />
|
|
<Reference Include="System.Management" />
|
|
<Reference Include="System.Net" />
|
|
<Reference Include="System.Windows.Forms" />
|
|
<Reference Include="System.Windows.Forms.DataVisualization" />
|
|
<Reference Include="System.Xaml" />
|
|
<Reference Include="System.XML" />
|
|
<Reference Include="UIAutomationProvider" />
|
|
<Reference Include="WindowsBase" />
|
|
<Reference Include="WindowsFormsIntegration" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Compile Include="3rd\zxing\BarcodeFormat.cs" />
|
|
<Compile Include="3rd\zxing\BaseLuminanceSource.cs" />
|
|
<Compile Include="3rd\zxing\Binarizer.cs" />
|
|
<Compile Include="3rd\zxing\BinaryBitmap.cs" />
|
|
<Compile Include="3rd\zxing\BitmapLuminanceSource.cs" />
|
|
<Compile Include="3rd\zxing\common\BitArray.cs" />
|
|
<Compile Include="3rd\zxing\common\BitMatrix.cs" />
|
|
<Compile Include="3rd\zxing\common\BitSource.cs" />
|
|
<Compile Include="3rd\zxing\common\DecoderResult.cs" />
|
|
<Compile Include="3rd\zxing\common\DefaultGridSampler.cs" />
|
|
<Compile Include="3rd\zxing\common\DetectorResult.cs" />
|
|
<Compile Include="3rd\zxing\common\detector\MathUtils.cs" />
|
|
<Compile Include="3rd\zxing\common\GlobalHistogramBinarizer.cs" />
|
|
<Compile Include="3rd\zxing\common\GridSampler.cs" />
|
|
<Compile Include="3rd\zxing\common\HybridBinarizer.cs" />
|
|
<Compile Include="3rd\zxing\common\PerspectiveTransform.cs" />
|
|
<Compile Include="3rd\zxing\common\reedsolomon\GenericGF.cs" />
|
|
<Compile Include="3rd\zxing\common\reedsolomon\GenericGFPoly.cs" />
|
|
<Compile Include="3rd\zxing\common\reedsolomon\ReedSolomonDecoder.cs" />
|
|
<Compile Include="3rd\zxing\common\reedsolomon\ReedSolomonEncoder.cs" />
|
|
<Compile Include="3rd\zxing\common\StringUtils.cs" />
|
|
<Compile Include="3rd\zxing\DecodeHintType.cs" />
|
|
<Compile Include="3rd\zxing\EncodeHintType.cs" />
|
|
<Compile Include="3rd\zxing\LuminanceSource.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\decoder\BitMatrixParser.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\decoder\DataBlock.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\decoder\DataMask.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\decoder\DecodedBitStreamParser.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\decoder\Decoder.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\decoder\ErrorCorrectionLevel.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\decoder\FormatInformation.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\decoder\Mode.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\decoder\QRCodeDecoderMetaData.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\decoder\Version.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\detector\AlignmentPattern.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\detector\AlignmentPatternFinder.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\detector\Detector.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\detector\FinderPattern.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\detector\FinderPatternFinder.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\detector\FinderPatternInfo.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\encoder\BlockPair.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\encoder\ByteMatrix.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\encoder\Encoder.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\encoder\MaskUtil.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\encoder\MatrixUtil.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\encoder\QRCode.cs" />
|
|
<Compile Include="3rd\zxing\qrcode\QRCodeReader.cs" />
|
|
<Compile Include="3rd\zxing\Result.cs" />
|
|
<Compile Include="3rd\zxing\ResultMetadataType.cs" />
|
|
<Compile Include="3rd\zxing\ResultPoint.cs" />
|
|
<Compile Include="3rd\zxing\ResultPointCallback.cs" />
|
|
<Compile Include="3rd\zxing\WriterException.cs" />
|
|
<Compile Include="Model\HotKeyConfig.cs" />
|
|
<Compile Include="Model\ProxyConfig.cs" />
|
|
<Compile Include="Proxy\DirectConnect.cs" />
|
|
<Compile Include="Proxy\IProxy.cs" />
|
|
<Compile Include="Controller\Service\AvailabilityStatistics.cs" />
|
|
<Compile Include="Controller\Strategy\HighAvailabilityStrategy.cs" />
|
|
<Compile Include="Controller\Strategy\StatisticsStrategy.cs" />
|
|
<Compile Include="Controller\System\AutoStartup.cs" />
|
|
<Compile Include="Controller\FileManager.cs" />
|
|
<Compile Include="Controller\Service\GFWListUpdater.cs" />
|
|
<Compile Include="Controller\I18N.cs" />
|
|
<Compile Include="Controller\Service\Listener.cs" />
|
|
<Compile Include="Controller\Logging.cs" />
|
|
<Compile Include="Controller\Service\PortForwarder.cs" />
|
|
<Compile Include="Controller\Service\UDPRelay.cs" />
|
|
<Compile Include="Controller\Service\UpdateChecker.cs" />
|
|
<Compile Include="Encryption\EncryptorBase.cs" />
|
|
<Compile Include="Encryption\EncryptorFactory.cs" />
|
|
<Compile Include="Encryption\IVEncryptor.cs" />
|
|
<Compile Include="Encryption\MbedTLS.cs" />
|
|
<Compile Include="Encryption\MbedTLSEncryptor.cs" />
|
|
<Compile Include="Encryption\Sodium.cs" />
|
|
<Compile Include="Encryption\SodiumEncryptor.cs" />
|
|
<Compile Include="Encryption\IEncryptor.cs" />
|
|
<Compile Include="Controller\Service\PACServer.cs" />
|
|
<Compile Include="Model\LogViewerConfig.cs" />
|
|
<Compile Include="Model\Server.cs" />
|
|
<Compile Include="Model\Configuration.cs" />
|
|
<Compile Include="Model\StatisticsRecord.cs" />
|
|
<Compile Include="Model\StatisticsStrategyConfiguration.cs" />
|
|
<Compile Include="Properties\Resources.Designer.cs">
|
|
<AutoGen>True</AutoGen>
|
|
<DesignTime>True</DesignTime>
|
|
<DependentUpon>Resources.resx</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="Controller\Strategy\BalancingStrategy.cs" />
|
|
<Compile Include="Controller\Strategy\StrategyManager.cs" />
|
|
<Compile Include="Controller\Strategy\IStrategy.cs" />
|
|
<Compile Include="Proxy\Socks5Proxy.cs" />
|
|
<Compile Include="StringEx.cs" />
|
|
<Compile Include="Util\Hotkeys.cs" />
|
|
<Compile Include="Util\ProcessManagement\Job.cs" />
|
|
<Compile Include="Util\ProcessManagement\ThreadUtil.cs" />
|
|
<Compile Include="Util\SocketUtil.cs" />
|
|
<Compile Include="Util\Util.cs" />
|
|
<Compile Include="View\ConfigForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="View\ConfigForm.Designer.cs">
|
|
<DependentUpon>ConfigForm.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="Controller\Service\TCPRelay.cs" />
|
|
<Compile Include="Controller\Service\PolipoRunner.cs" />
|
|
<Compile Include="Program.cs" />
|
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
<Compile Include="Controller\ShadowsocksController.cs" />
|
|
<Compile Include="Controller\System\SystemProxy.cs" />
|
|
<Compile Include="View\CalculationControl.cs">
|
|
<SubType>UserControl</SubType>
|
|
</Compile>
|
|
<Compile Include="View\CalculationControl.Designer.cs">
|
|
<DependentUpon>CalculationControl.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="View\HotkeySettingsForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="View\HotkeySettingsForm.designer.cs">
|
|
<DependentUpon>HotkeySettingsForm.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="View\LogForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="View\LogForm.Designer.cs">
|
|
<DependentUpon>LogForm.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="View\MenuViewController.cs" />
|
|
<Compile Include="View\ProxyForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="View\ProxyForm.Designer.cs">
|
|
<DependentUpon>ProxyForm.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="View\QRCodeForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="View\QRCodeForm.Designer.cs">
|
|
<DependentUpon>QRCodeForm.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="View\QRCodeSplashForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="View\StatisticsStrategyConfigurationForm.cs">
|
|
<SubType>Form</SubType>
|
|
</Compile>
|
|
<Compile Include="View\StatisticsStrategyConfigurationForm.Designer.cs">
|
|
<DependentUpon>StatisticsStrategyConfigurationForm.cs</DependentUpon>
|
|
</Compile>
|
|
<EmbeddedResource Include="View\ConfigForm.resx">
|
|
<DependentUpon>ConfigForm.cs</DependentUpon>
|
|
<SubType>Designer</SubType>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="Properties\Resources.resx">
|
|
<Generator>ResXFileCodeGenerator</Generator>
|
|
<SubType>Designer</SubType>
|
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="View\CalculationControl.resx">
|
|
<DependentUpon>CalculationControl.cs</DependentUpon>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="View\HotkeySettingsForm.resx">
|
|
<DependentUpon>HotkeySettingsForm.cs</DependentUpon>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="View\LogForm.resx">
|
|
<DependentUpon>LogForm.cs</DependentUpon>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="View\ProxyForm.resx">
|
|
<DependentUpon>ProxyForm.cs</DependentUpon>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="View\QRCodeForm.resx">
|
|
<DependentUpon>QRCodeForm.cs</DependentUpon>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="View\StatisticsStrategyConfigurationForm.resx">
|
|
<DependentUpon>StatisticsStrategyConfigurationForm.cs</DependentUpon>
|
|
</EmbeddedResource>
|
|
<None Include="app.config" />
|
|
<None Include="app.manifest">
|
|
<SubType>Designer</SubType>
|
|
</None>
|
|
<None Include="Data\abp.js.gz" />
|
|
<None Include="Data\libsscrypto.dll.gz" />
|
|
<None Include="Data\mgwz.dll.gz" />
|
|
<None Include="Data\privoxy.exe.gz" />
|
|
<None Include="Data\proxy.pac.txt.gz" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<None Include="packages.config" />
|
|
<None Include="Properties\DataSources\Shadowsocks.Model.StatisticsStrategyConfiguration.datasource" />
|
|
<None Include="Resources\ss20.png" />
|
|
<None Include="Resources\ss16.png" />
|
|
<None Include="Resources\ss24.png" />
|
|
<None Include="Resources\ssw128.png" />
|
|
<Content Include="Data\cn.txt" />
|
|
<Content Include="Data\privoxy_conf.txt" />
|
|
<Content Include="Data\user-rule.txt" />
|
|
<Content Include="Data\zh_tw.txt" />
|
|
<Content Include="FodyWeavers.xml">
|
|
<SubType>Designer</SubType>
|
|
</Content>
|
|
<Content Include="Resources\ssIn24.png" />
|
|
<Content Include="Resources\ssOut24.png" />
|
|
<Content Include="shadowsocks.ico" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
|
<Install>false</Install>
|
|
</BootstrapperPackage>
|
|
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
|
|
<Install>false</Install>
|
|
</BootstrapperPackage>
|
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
|
|
<Install>false</Install>
|
|
</BootstrapperPackage>
|
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 3.5</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>
|
|
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
|
<Visible>False</Visible>
|
|
<ProductName>Windows Installer 3.1</ProductName>
|
|
<Install>true</Install>
|
|
</BootstrapperPackage>
|
|
</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('3rd\Fody.1.29.4\build\portable-net+sl+win+wpa+wp\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '3rd\Fody.1.29.4\build\portable-net+sl+win+wpa+wp\Fody.targets'))" />
|
|
</Target>
|
|
<Import Project="3rd\Fody.1.29.4\build\portable-net+sl+win+wpa+wp\Fody.targets" Condition="Exists('3rd\Fody.1.29.4\build\portable-net+sl+win+wpa+wp\Fody.targets')" />
|
|
<UsingTask TaskName="CosturaCleanup" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" TaskFactory="CodeTaskFactory">
|
|
<ParameterGroup>
|
|
<Config Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem" />
|
|
<Files Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem[]" />
|
|
</ParameterGroup>
|
|
<Task Evaluate="true">
|
|
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml" />
|
|
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml.Linq" />
|
|
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System" />
|
|
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.IO" />
|
|
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.Xml.Linq" />
|
|
<Code xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Type="Fragment" Language="cs"><![CDATA[
|
|
var config = XElement.Load(Config.ItemSpec).Elements("Costura").FirstOrDefault();
|
|
|
|
if (config == null) return true;
|
|
|
|
var excludedAssemblies = new List<string>();
|
|
var attribute = config.Attribute("ExcludeAssemblies");
|
|
if (attribute != null)
|
|
foreach (var item in attribute.Value.Split('|').Select(x => x.Trim()).Where(x => x != string.Empty))
|
|
excludedAssemblies.Add(item);
|
|
var element = config.Element("ExcludeAssemblies");
|
|
if (element != null)
|
|
foreach (var item in element.Value.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).Where(x => x != string.Empty))
|
|
excludedAssemblies.Add(item);
|
|
|
|
var filesToCleanup = Files.Select(f => f.ItemSpec).Where(f => !excludedAssemblies.Contains(Path.GetFileNameWithoutExtension(f), StringComparer.InvariantCultureIgnoreCase));
|
|
|
|
foreach (var item in filesToCleanup)
|
|
File.Delete(item);
|
|
]]></Code>
|
|
</Task>
|
|
</UsingTask>
|
|
<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild;NonWinFodyTarget">
|
|
<CosturaCleanup Config="FodyWeavers.xml" Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
|
|
</Target>
|
|
<!-- 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.
|
|
<Target Name="BeforeBuild">
|
|
</Target>
|
|
<Target Name="AfterBuild">
|
|
</Target>
|
|
-->
|
|
</Project> |