diff --git a/TypeScript-MSBuild-In-depth.md b/TypeScript-MSBuild-In-depth.md index 89556d8..836ecbf 100644 --- a/TypeScript-MSBuild-In-depth.md +++ b/TypeScript-MSBuild-In-depth.md @@ -1,21 +1,44 @@ # Delivery Mechanism + ## NuGet -Note: In release 2.3, TypeScript MSBuild has support for MSBuild cross-platform compilation. + +In release 2.3 and above, TypeScript MSBuild can be use with MSBuild on non-Window platform. + ### Package structure + TypeScript NuGet contains two main folders + * build folder -Two files are located in this folder: *Microsoft.TypeScript.MSBuild.targets* and *Microsoft.TypeScript.MSBuild.props*. -Both are entry point for target file and props file respectively when using MSBuild with NuGet; *Microsoft.TypeScript.MSBuild.targets* will set variables needed for cross-platform compilation (e.g. Path to NodeJS etc.) and NuGet compilation (e.g. Path to corresponding Tasks.dll) before import *Microsoft.TypeScript.targets* in *tools* folder. *Microsoft.TypeScript.MSBuild.props* will set variables to indicate that the compilation is invoked through NuGet before import *Microsoft.TypeScript.Default.props* in *tools*. + Two files are locatd in the folder. + Both are entry point for main TypeScript target file and props file respectively. + + 1. Microsoft.TypeScript.MSBuild.targets + + The file set variables specific to a runtime platform, such as a path to `TypeScript.Tasks.dll`, before import `Microsoft.TypeScript.targets` from `tools` folder. + + 2. Microsoft.TypeScript.MSBuild.props + + The file imports `Microsoft.TypeScript.Default.props` from `tools` folder and set properties indicating that the build is initiated through NuGet. * tools folder + + Earlier version only contains tsc folder. `Microsoft.TypeScript.targets` and `TypeScript.Tasks.dll` are located at the root level. -## MSI Installer -### Folder structure -#### SDK -#### MSBuild + Below structure is for version 2.3 and above. + 1. net45 -# Stub Target File -# Target File -# TypeScript.Tasks.dll & dependent DLL -# Limitation \ No newline at end of file + contains `Microsoft.TypeScript.targets`, `TypeScript.Tasks.dll` and facade dependency dlls. + When building any projecton Window platform, MSBuild uses the DLLs from this folder. + + 2. netstandard + + contains `Microsoft.TypeScript.targets` and `TypeScript.Tasks.dll`. + The contents in this folder are used when building projects on non-Window machine. + + 3. tsc + + contains `tsc.exe` and all dependency files to execute the exe. + On Window, `TypeScript.Tasks.dll` uses the `tsc.exe` to build projects. + On non-Window, `TypeScript.Tasks.dll` uses `tsc.js`, running through command `node tsc.js `. + Therefore, on non-Window platform, NodeJS is required to be installed. \ No newline at end of file