2020-10-15 12:47:01 +03:00
|
|
|
# File layout
|
|
|
|
|
2021-05-06 08:46:01 +03:00
|
|
|
## Microsoft.NET.Sdk._platform_
|
2020-10-15 12:47:01 +03:00
|
|
|
|
|
|
|
* WorkloadManifest.json: workload manifest that describes the different
|
|
|
|
workloads for _platform_.
|
|
|
|
* WorkloadManifest.targets: imports Microsoft._platform_.Sdk if we're building
|
|
|
|
for _platform_ (based on `TargetPlatformIdentifier`).
|
|
|
|
|
|
|
|
### Documentation
|
|
|
|
|
|
|
|
* [.NET Optional SDK
|
|
|
|
Workloads](https://github.com/dotnet/designs/blob/main/accepted/2020/workloads/workloads.md)
|
|
|
|
* [Workload
|
|
|
|
resolvers](https://github.com/dotnet/designs/blob/main/accepted/2020/workloads/workload-resolvers.md)
|
|
|
|
* [Workload manifests](https://github.com/dotnet/designs/pull/120)
|
|
|
|
|
|
|
|
## Microsoft._platform_.Sdk
|
|
|
|
|
2020-11-05 12:06:45 +03:00
|
|
|
These files are imported into every project that references Microsoft.NET.Sdk:
|
|
|
|
|
|
|
|
Files are imported in the following order:
|
|
|
|
|
|
|
|
1. Sdk/AutoImport.props: automatically imported into _every build_ that
|
|
|
|
references Microsoft.NET.Sdk. It has strict restrictions on what it can do,
|
|
|
|
to make sure it doesn't break builds for other SDKs. It imports
|
|
|
|
Microsoft._platform_.Sdk.DefaultItems.props, where the default inclusion
|
|
|
|
itemgroups are defined.
|
|
|
|
|
|
|
|
2. The user's `.csproj`.
|
|
|
|
|
|
|
|
3. Some early parts of `Microsoft.NET.Sdk` / `Sdk.targets`.
|
|
|
|
|
|
|
|
4. WorkloadManifest.targets:
|
|
|
|
|
|
|
|
* Sdk/Sdk.props: imported by WorkloadManifest.targets
|
|
|
|
* targets/Microsoft._platform_.Sdk.SupportedTargetPlatforms.props: lists which
|
|
|
|
versions of _platform_ are supported
|
|
|
|
* targets/Xamarin.Shared.Sdk.TargetFrameworkInference.props: some TargetFramework
|
|
|
|
logic.
|
2021-02-11 22:17:12 +03:00
|
|
|
* targets/Microsoft._platform_.Sdk.Versions.props: declares various properties related to
|
2020-11-05 12:06:45 +03:00
|
|
|
version information.
|
|
|
|
* targets/Xamarin.Shared.Sdk.props: imports other props files.
|
|
|
|
|
|
|
|
We try to do as little as possible in this stage; only set properties and
|
|
|
|
item groups that the rest of `Microsoft.NET.Sdk` requires.
|
|
|
|
|
|
|
|
5. The rest of `Microsoft.NET.Sdk` / `Sdk.targets`.
|
|
|
|
|
|
|
|
6. `targets/Microsoft._platform_.Sdk.targets`
|
|
|
|
|
|
|
|
* targets/Microsoft._platform_.Sdk.targets: contains logic specific to _platform_.
|
|
|
|
* targets/Xamarin.Shared.Sdk.DefaultItems.targets: contains logic to enable the
|
|
|
|
default behavior we want.
|
2021-08-11 11:01:16 +03:00
|
|
|
* targets/Xamarin.Shared.Sdk.Publish.targets: contains logic to publish the
|
|
|
|
app bundle.
|
2020-11-05 12:06:45 +03:00
|
|
|
* targets/Xamarin.Shared.Sdk.targets: all of the build logic shared between all
|
|
|
|
platforms.
|
2020-10-15 12:47:01 +03:00
|
|
|
|
|
|
|
## Microsoft._platform_.Ref
|
|
|
|
|
|
|
|
Contains reference assemblies.
|
|
|
|
|
|
|
|
## Microsoft._platform_.Runtime.[runtimeIdentifier]
|
|
|
|
|
|
|
|
Contains implementation assemblies and native bits.
|
2021-03-02 18:23:05 +03:00
|
|
|
|
|
|
|
## Microsoft._platform.Templates
|
|
|
|
|
|
|
|
Contains project & item templates for each platform.
|