<Project DefaultTargets = "Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" > <PropertyGroup> <CleanDependsOn> $(CleanDependsOn) CleanVectoDeploy </CleanDependsOn> </PropertyGroup> <UsingTask TaskName="Zip" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> <ParameterGroup> <OutputFilename ParameterType="System.String" Required="true" /> <Files ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" /> <SourcePath ParameterType="System.String" Required="true"/> <DestinationPath ParameterType="System.String" Required="true"/> </ParameterGroup> <Task> <Reference Include="System.IO.Compression" /> <Using Namespace="System.IO.Compression" /> <Code Type="Fragment" Language="cs"> <![CDATA[ try { using (Stream zipStream = new FileStream(Path.GetFullPath(OutputFilename), FileMode.Create, FileAccess.Write)) using (ZipArchive archive = new ZipArchive(zipStream, ZipArchiveMode.Create)) { foreach (ITaskItem fileItem in Files) { string filename = fileItem.ItemSpec; using (Stream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read)) using (Stream fileStreamInZip = archive.CreateEntry(fileItem.ItemSpec.Replace(SourcePath, DestinationPath)).Open()) fileStream.CopyTo(fileStreamInZip); } } return true; } catch (Exception ex) { Log.LogErrorFromException(ex); return false; } ]]> </Code> </Task> </UsingTask> <Target Name="GenerateReleasenotesPDF" BeforeTargets="AfterBuild" Condition="$(Configuration) == 'Deploy'"> <Message Text="Generating Release Notes PDF"/> <Exec Command="cscript "$(solutiondir)documentation\user manual source\convertpptxtopdf.vbs" "$(solutiondir)documentation\user manual source\release notes vecto3.x.pptx" "$(solutiondir)documentation\user manual source\release notes vecto3.x.pdf""/> </Target> <Target Name="GenerateHelpHTML" BeforeTargets="AfterBuild" Condition="$(Configuration) == 'Deploy'"> <Message Text="Generating Help"/> <Exec Command=""$(solutiondir)documentation\user manual\convert.bat"" WorkingDirectory="$(solutiondir)documentation\user manual"/> <Exec Command=""$(solutiondir)documentation\VectoHashingTool\convert.bat"" WorkingDirectory="$(solutiondir)documentation\VectoHashingTool"/> </Target> <Target Name="BeforeBuild" Condition="$(Configuration) == 'Deploy' OR $(Configuration) == 'Release'"> <ItemGroup> <VersionTemplates Include="$(SolutionDir)**\Version.tt"/> </ItemGroup> <Exec Command=""C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\TextTransform.exe" "%(VersionTemplates.Identity)""/> </Target> <Target Name="AfterBuild" Condition="$(Configuration) == 'Deploy'"> <ItemGroup> <VectoCoreAssembly Include="$(OutputPath)VectoCore.dll" /> <VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Deploy\vectocmd.exe*"/> <GenericVehicles Include="$(SolutionDir)Generic Vehicles\**\*.*" Exclude="$(SolutionDir)**\*.vmod;$(SolutionDir)**\*.vsum;$(SolutionDir)**\*RSLT_*.xml;$(SolutionDir)**\*.pdf"/> <MissionProfiles Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\MissionCycles\**\*.*"/> <DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.csv" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/> <DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.vacc" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/> <VectoXSD Include="$(SolutionDir)VectoCore\VectoCore\Resources\XSD\**\*.*" Exclude="$(SolutionDir)**\*Engineering*"/> <VectoXMLExamples Include="$(SolutionDir)VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\*-sample.xml"/> <UserManual Include="$(SolutionDir)Documentation\User Manual\help.html"/> <UserManual Include="$(SolutionDir)Documentation\VectoHashingTool\HashingToolHelp.html"/> <UserManual Include="$(SolutionDir)Documentation\XML\*.pdf"/> <UserManual Include="$(SolutionDir)Documentation\XML\VectoParameters.html"/> <UserManual Include="$(SolutionDir)Documentation\User Manual Source\JIRA Quick Start Guide.pdf"/> <UserManual Include="$(SolutionDir)Documentation\Cdv_Generator_VECTO3.2.xlsx"/> <ReleaseNotes Include="$(SolutionDir)Documentation\User Manual Source\Release Notes Vecto3.x.pdf"/> <HashingTool Include="$(SolutionDir)HashingTool\bin\Deploy\HashingTool.exe"/> <HashingTool Include="$(SolutionDir)VectoCommon\VectoHashing\bin\Deploy\VectoHashing.XML"/> <HashingTool Include="$(SolutionDir)HashingCmd\bin\Deploy\hashingcmd.exe"/> </ItemGroup> <Message Text="@(VectoCommandLine)"/> <Copy SourceFiles="@(VectoCommandLine)" DestinationFolder="$(OutputPath)"/> <Copy SourceFiles="@(HashingTool)" DestinationFolder="$(OutputPath)"/> <Copy SourceFiles="@(GenericVehicles)" DestinationFiles="@(GenericVehicles->'$(OutputPath)\Generic Vehicles\%(RecursiveDir)%(Filename)%(Extension)')" /> <Copy SourceFiles="@(DeclarationData)" DestinationFolder="$(OutputPath)\Declaration" /> <Copy SourceFiles="@(MissionProfiles)" DestinationFolder="$(OutputPath)\Mission Profiles" /> <Copy SourceFiles="@(VectoXMLExamples)" DestinationFolder="$(OutputPath)\XML\Examples" /> <Copy SourceFiles="@(VectoXSD)" DestinationFolder="$(OutputPath)\XML\XSD" /> <Copy SourceFiles="@(UserManual)" DestinationFolder="$(OutputPath)\User Manual" /> <Copy SourceFiles="@(ReleaseNotes)" DestinationFiles="$(OutputPath)\User Manual\Release Notes.pdf" /> <Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Mission Profiles Directory.txt" DestinationFiles="$(OutputPath)\Mission Profiles\!! README !!.TXT"/> <Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Declaration Directory.txt" DestinationFiles="$(OutputPath)\Declaration\!! README !!.TXT"/> <ItemGroup> <ZipFiles Include="$(OutputPath)Declaration\**\*.*" /> <ZipFiles Include="$(OutputPath)Generic Vehicles\**\*.*" /> <ZipFiles Include="$(OutputPath)Mission Profiles\**\*.*" /> <ZipFiles Include="$(OutputPath)User Manual\**\*.*" /> <ZipFiles Include="$(OutputPath)XML\**\*.*" /> </ItemGroup> <GetAssemblyIdentity AssemblyFiles="@(VectoCoreAssembly)"> <Output TaskParameter="Assemblies" ItemName="VectoAssemblyIdentities" /> </GetAssemblyIdentity> <ItemGroup> <ZipFiles Include="$(OutputPath)*.dll" /> <ZipFiles Include="$(OutputPath)VECTO.exe*" /> <ZipFiles Include="$(OutputPath)vectocmd.exe*"/> <ZipFiles Include="$(OutputPath)HashingTool.exe*"/> <ZipFiles Include="$(OutputPath)hashingcmd.exe*"/> </ItemGroup> <PropertyGroup> <CurrentDate>$([System.DateTime]::Now.ToString(yyy_MM_dd))</CurrentDate> </PropertyGroup> <Message Text="Creating ZIP, CurrentDate: $(CurrentDate)"/> <Zip OutputFilename="$(OutputPath)$(CurrentDate)-VECTO-%(VectoAssemblyIdentities.Version).zip" Files="@(ZipFiles)" SourcePath="$(OutputPath)" DestinationPath="$(CurrentDate)-VECTO-%(VectoAssemblyIdentities.Version)\"/> </Target> <Target Name="CleanVectoDeploy" Condition="$(Configuration) == 'Deploy'"> <ItemGroup> <CustomFilesToClean Include="$(OutputPath)Declaration\**\*.*" /> <CustomFilesToClean Include="$(OutputPath)Generic Vehicles\**\*.*" /> <CustomFilesToClean Include="$(OutputPath)Mission Profiles\**\*.*" /> <CustomFilesToClean Include="$(OutputPath)User Manual\**\*.*" /> <CustomFilesToClean Include="$(OutputPath)XML\**\*.*" /> <CustomFoldersToClean Include="%(CustomFilesToClean.RootDir)%(CustomFilesToClean.Directory)"/> </ItemGroup> <!-- <Message Text="@(CustomFilesToClean)" Importance="normal"/> --> <!-- <Message Text="@(CustomFoldersToClean)" Importance="normal"/> --> <Delete Files="@CustomFilesToClean"/> <RemoveDir Directories="@(CustomFoldersToClean)"/> </Target> </Project>