Add missing Mono binary files

This commit is contained in:
Wojtek Figat
2020-12-07 23:57:30 +01:00
parent 6fb9eee74c
commit f298e9c67f
24 changed files with 3322 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
!Binaries/
!bin/
!*.*

View File

@@ -1,2 +1,3 @@
!Binaries/
!bin/
!*.*

View File

@@ -0,0 +1,2 @@
@echo off
"%~dp0\mono.exe" %MONO_OPTIONS% "%~dp0\..\lib\mono\4.5\csc.exe" %*

BIN
Source/Platforms/Editor/Windows/Mono/bin/mono-2.0-sgen.dll (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Source/Platforms/Editor/Windows/Mono/bin/mono.exe (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,390 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://schemas.microsoft.com/developer/msbuild/2003" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!-- ======================================================================================= -->
<xs:element name="Project">
<xs:complexType>
<xs:sequence>
<xs:group ref="msb:ProjectLevelTagExceptTargetOrImportType" minOccurs="0" maxOccurs="unbounded"/>
<!-- must be at least one Target or Import tag-->
<xs:group ref="msb:TargetOrImportType"/>
<xs:group ref="msb:ProjectLevelTagType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="DefaultTargets" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional semi-colon separated list of one or more targets that will be built if no targets are otherwise specified</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<!-- ======================================================================================= -->
<xs:group name="ProjectLevelTagExceptTargetOrImportType">
<xs:choice>
<xs:element name="PropertyGroup" type="msb:PropertyGroupType"/>
<xs:element name="ItemGroup" type="msb:ItemGroupType"/>
<xs:element name="Choose" type="msb:ChooseType"/>
<xs:element name="Error" type="msb:WarningErrorOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs an Error event</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Warning" type="msb:WarningErrorOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs a Warning event</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Message" type="msb:MessageOutsideTargetType"/>
<xs:element name="UsingTask" type="msb:UsingTaskType"/>
<xs:element name="ProjectExtensions" type="msb:ProjectExtensionsType"/>
</xs:choice>
</xs:group>
<!-- ======================================================================================= -->
<xs:group name="ProjectLevelTagType">
<xs:choice>
<xs:element name="PropertyGroup" type="msb:PropertyGroupType"/>
<xs:element name="ItemGroup" type="msb:ItemGroupType"/>
<xs:element name="Choose" type="msb:ChooseType"/>
<xs:element name="Error" type="msb:WarningErrorOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs an Error event</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Warning" type="msb:WarningErrorOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs a Warning event</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Message" type="msb:MessageOutsideTargetType"/>
<xs:element name="UsingTask" type="msb:UsingTaskType"/>
<xs:element name="Target" type="msb:TargetType"/>
<xs:element name="Import" type="msb:ImportType"/>
<xs:element name="ProjectExtensions" type="msb:ProjectExtensionsType"/>
</xs:choice>
</xs:group>
<!-- ======================================================================================= -->
<xs:group name="TargetOrImportType">
<xs:choice>
<xs:element name="Target" type="msb:TargetType"/>
<xs:element name="Import" type="msb:ImportType"/>
</xs:choice>
</xs:group>
<!-- ======================================================================================= -->
<xs:complexType name="TargetType">
<xs:annotation>
<xs:documentation>Groups tasks into a section of the build process</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="msb:Task"/>
</xs:choice>
<xs:element name="OnError" type="msb:OnErrorType" minOccurs="0" maxOccurs="unbounded"/>
<!-- no elements are allowed under Target after an OnError element-->
</xs:sequence>
<xs:attribute name="Name" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Name of the target</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DependsOnTargets" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional semi-colon separated list of targets that should be run before this target</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Inputs" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional semi-colon separated list of files that form inputs into this target. Their timestamps will be compared with the timestamps of files in Outputs to determine whether the Target is up to date</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Outputs" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional semi-colon separated list of files that form outputs into this target. Their timestamps will be compared with the timestamps of files in Inputs to determine whether the Target is up to date</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the Target and the targets it depends on should be run</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="PropertyGroupType">
<xs:annotation>
<xs:documentation>Groups property definitions</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="msb:Property"/>
</xs:sequence>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the PropertyGroup should be used</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="ItemGroupType">
<xs:annotation>
<xs:documentation>Groups item list definitions</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="msb:Item"/>
</xs:sequence>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the ItemGroup should be used</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="ChooseType">
<xs:annotation>
<xs:documentation>Groups When and Otherwise elements</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="When" type="msb:WhenType" maxOccurs="unbounded"/>
<xs:element name="Otherwise" type="msb:OtherwiseType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="WhenType">
<xs:annotation>
<xs:documentation>Groups PropertyGroup and/or ItemGroup elements</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice>
<xs:element name="PropertyGroup" type="msb:PropertyGroupType"/>
<xs:element name="ItemGroup" type="msb:ItemGroupType"/>
<xs:element name="Choose" type="msb:ChooseType"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="Condition" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the child PropertyGroups and/or ItemGroups should be used</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="OtherwiseType">
<xs:annotation>
<xs:documentation>Groups PropertyGroup and/or ItemGroup elements that are used if no Conditions on sibling When elements evaluate to true</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice>
<xs:element name="PropertyGroup" type="msb:PropertyGroupType"/>
<xs:element name="ItemGroup" type="msb:ItemGroupType"/>
<xs:element name="Choose" type="msb:ChooseType"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="OnErrorType">
<xs:annotation>
<xs:documentation>Specifies targets to execute in the event of a recoverable error</xs:documentation>
</xs:annotation>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the targets should be executed</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExecuteTargets" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Semi-colon separated list of targets to execute</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="MessageOutsideTargetType">
<xs:annotation>
<xs:documentation>Logs an informational Message event, with an optional Importance</xs:documentation>
</xs:annotation>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the Message should be logged</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Importance" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional priority level. Allowed values are Low, Normal (default), and High</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Text" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Text to log</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="WarningErrorOutsideTargetType">
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the text should be logged</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Text" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Text to log</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="UsingTaskType">
<xs:annotation>
<xs:documentation>Declares where to load a task that will be used in the project</xs:documentation>
</xs:annotation>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the declaration should be evaluated</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AssemblyName" type="msb:non_empty_string" use="optional">
<xs:annotation>
<xs:documentation>Optional name of assembly containing the task. Either AssemblyName or AssemblyFile must be used</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AssemblyFile" type="msb:non_empty_string" use="optional">
<xs:annotation>
<xs:documentation>Optional path to assembly containing the task. Either AssemblyName or AssemblyFile must be used</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TaskName" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Name of task class in the assembly</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="ImportType">
<xs:annotation>
<xs:documentation>Declares that the contents of another project file should be inserted at this location</xs:documentation>
</xs:annotation>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the import should occur</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Project" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Project file to import</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:complexType name="ProjectExtensionsType" mixed="true">
<xs:annotation>
<xs:documentation>Optional section used by MSBuild hosts, that may contain arbitrary XML content that is ignored by MSBuild itself</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:any processContents="skip"/>
</xs:sequence>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:element name="Item" type="msb:SimpleItemType" abstract="true"/>
<!-- ======================================================================================= -->
<!-- convenience type for items that have no meta-data-->
<xs:complexType name="SimpleItemType">
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the items should be evaluated</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Include" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Semi-colon separated list of files (wildcards are allowed) or other item names to include in this item list</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Exclude" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Semi-colon separated list of files (wildcards are allowed) or other item names to exclude from the Include list</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<!-- general utility type allowing an item type to be defined but not its child meta-data-->
<xs:complexType name="GenericItemType">
<xs:complexContent>
<xs:extension base="msb:SimpleItemType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:any namespace="##any" processContents="skip"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ======================================================================================= -->
<!-- no type declared on this abstract element, so either a simple or complex type can be substituted for it.-->
<xs:element name="Property" abstract="true"/>
<!-- ======================================================================================= -->
<!-- convenience type for properties that just want to allow text and no elements in them-->
<xs:complexType name="StringPropertyType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the property should be evaluated</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!-- ======================================================================================= -->
<!-- general utility type allowing text and/or elements inside-->
<xs:complexType name="GenericPropertyType" mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:any namespace="##any" processContents="skip"/>
</xs:sequence>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the property should be evaluated</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ======================================================================================= -->
<xs:element name="Task" type="msb:TaskType" abstract="true"/>
<!-- ======================================================================================= -->
<xs:complexType name="TaskType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="Output">
<xs:annotation>
<xs:documentation>Optional element specifying a specific task output to be gathered</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="TaskParameter" type="msb:non_empty_string" use="required">
<xs:annotation>
<xs:documentation>Task parameter to gather. Matches the name of a .NET Property on the task class that has an [Output] attribute</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ItemName" type="msb:non_empty_string" use="optional">
<xs:annotation>
<xs:documentation>Optional name of an item list to put the gathered outputs into. Either ItemName or PropertyName must be specified</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PropertyName" type="msb:non_empty_string" use="optional">
<xs:annotation>
<xs:documentation>Optional name of a property to put the gathered output into. Either PropertyName or ItemName must be specified</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the output should be gathered</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Condition" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional expression evaluated to determine whether the task should be executed</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ContinueOnError" type="msb:non_empty_string" use="optional">
<xs:annotation>
<xs:documentation>Optional boolean indicating whether a recoverable task error should be ignored. Default false</xs:documentation>
</xs:annotation>
</xs:attribute>
<!-- We don't need the anyAttribute here because other types deriving from this type will add the right attributes.-->
</xs:complexType>
<!-- ======================================================================================= -->
<!-- XSD considers an empty-valued attribute to satisfy use="required", but we want it to have a non-empty value in most cases, hence this utility type. -->
<xs:simpleType name="non_empty_string">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

Binary file not shown.

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://schemas.microsoft.com/developer/msbuild/2003"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003"
elementFormDefault="qualified">
<!-- =================== IMPORT COMMON SCHEMA =========================== -->
<xs:include schemaLocation="MSBuild/Microsoft.Build.CommonTypes.xsd"/>
<!-- ========= ADD CUSTOM ITEMS, PROPERTIES, AND TASKS BELOW ======= -->
<!-- Note that these will be in the msbuild namespace. A future version of
msbuild may require that custom itemtypes, properties, and tasks be in a
custom namespace, but currently msbuild only supports the msbuild namespace. -->
<!-- example custom itemtype with particular meta-data required-->
<!--<xs:element name="MyItem" substitutionGroup="msb:Item">
<xs:complexType>
<xs:complexContent>
<xs:extension base="msb:SimpleItemType">
<xs:sequence maxOccurs="1">
<xs:choice>
<xs:element name="MyMetaData" type="xs:string"/>
</xs:choice>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>-->
<!-- Example custom itemtype with NO meta-data -->
<!--<xs:element name="MySimpleItem" type="msb:SimpleItemType" substitutionGroup="msb:Item"/>-->
<!-- Example custom itemtype with ANY meta-data -->
<!--<xs:element name="MyFlexibleItem" type="msb:GenericItemType" substitutionGroup="msb:Item"/>-->
<!-- example custom property that allows string content only-->
<!--<xs:element name="MySimpleProperty" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>-->
<!-- example custom task with single required parameter-->
<!--<xs:element name="MyTask" substitutionGroup="msb:Task">
<xs:complexType>
<xs:complexContent>
<xs:extension base="msb:TaskType">
<xs:attribute name="MyParameter" type="xs:boolean" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>-->
</xs:schema>

View File

@@ -0,0 +1,142 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DefaultLanguageSourceExtension>.cs</DefaultLanguageSourceExtension>
<Language>C#</Language>
</PropertyGroup>
<PropertyGroup>
<DebugSymbols Condition=" '$(DebugType)' == 'none' ">false</DebugSymbols>
<DebugType Condition=" '$(DebugType)' == 'none' "></DebugType>
</PropertyGroup>
<PropertyGroup>
<CreateManifestResourceNamesDependsOn></CreateManifestResourceNamesDependsOn>
<CoreCompileDependsOn></CoreCompileDependsOn>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildToolsPath)\Microsoft.CSharp.targets</MSBuildAllProjects>
</PropertyGroup>
<PropertyGroup>
<NoCompilerStandardLib Condition="'$(NoCompilerStandardLib)'==''">true</NoCompilerStandardLib>
</PropertyGroup>
<ItemGroup>
<DocFileItem Include="$(DocumentationFile)" Condition="'$(DocumentationFile)' != ''"/>
</ItemGroup>
<Target Name="_AddCorlibReference" DependsOnTargets="GetReferenceAssemblyPaths">
<!--
HACK: We don't yet support property functions, so can't calculate FrameworkPathOverride
by calling ToolLocationHelper.GetPathToStandardLibraries. Instead, we search the framework
directories for mscorlib.dll by constructing a filtered item set, and assume it only has
one item.
-->
<ItemGroup Condition="'$(MonoUseMicrosoftBuildDll)' != 'True'">
<_ExplicitReference Include="@(_TargetFrameworkDirectories->'%(FullPath)\mscorlib.dll')" Condition="Exists('%(FullPath)\mscorlib.dll')">
<Private>false</Private>
</_ExplicitReference>
</ItemGroup>
<PropertyGroup Condition="'$(MonoUseMicrosoftBuildDll)' == 'True'">
<_ExplicitMSCorlibPath>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPathToStandardLibraries ('$(TargetFrameworkIdentifier)', '$(TargetFrameworkVersion)', '$(TargetFrameworkProfile)'))\mscorlib.dll</_ExplicitMSCorlibPath>
</PropertyGroup>
<ItemGroup Condition="'$(MonoUseMicrosoftBuildDll)' == 'True'">
<_ExplicitReference Include="@(_TargetFrameworkDirectories->'%(FullPath)\mscorlib.dll')" Condition="Exists('%(FullPath)\mscorlib.dll')">
<Private>false</Private>
</_ExplicitReference>
</ItemGroup>
<ItemGroup Condition="'$(MonoUseMicrosoftBuildDll)' == 'True'">
<_ExplicitReference Include="$(_ExplicitMSCorlibPath)" Condition="Exists('$(_ExplicitMSCorlibPath)')">
<Private>false</Private>
</_ExplicitReference>
</ItemGroup>
</Target>
<Target
Name="CoreCompile"
Inputs="$(MSBuildAllProjects);@(Compile);@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile);
$(KeyOriginatorFile);@(ReferencePath);$(ApplicationIcon);$(Win32Resource)"
Outputs="@(DocFileItem);@(IntermediateAssembly)"
DependsOnTargets="$(CoreCompileDependsOn)"
>
<Csc
AdditionalLibPaths="$(AdditionalLibPaths)"
AddModules="@(AddModules)"
AllowUnsafeBlocks="$(AllowUnsafeBlocks)"
BaseAddress="$(BaseAddress)"
CheckForOverflowUnderflow="$(CheckForOverflowUnderflow)"
CodePage="$(CodePage)"
DebugType="$(DebugType)"
DefineConstants="$(DefineConstants)"
DelaySign="$(DelaySign)"
DisabledWarnings="$(NoWarn)"
DocumentationFile="@(DocFileItem)"
EmitDebugInformation="$(DebugSymbols)"
ErrorReport="$(ErrorReport)"
FileAlignment="$(FileAlignment)"
GenerateFullPaths="$(GenerateFullPaths)"
KeyContainer="$(KeyContainerName)"
KeyFile="$(KeyOriginatorFile)"
LangVersion="$(LangVersion)"
MainEntryPoint="$(StartupObject)"
ModuleAssemblyName="$(ModuleAssemblyName)"
NoConfig="true"
NoLogo="$(NoLogo)"
NoStandardLib="$(NoCompilerStandardLib)"
Optimize="$(Optimize)"
OutputAssembly="@(IntermediateAssembly)"
PdbFile="$(PdbFile)"
Platform="$(PlatformTarget)"
References="@(ReferencePath)"
ResponseFiles="$(CompilerResponseFile)"
Sources="@(Compile)"
TargetType="$(OutputType)"
TreatWarningsAsErrors="$(TreatWarningsAsErrors)"
UseHostCompilerIfAvailable="$(UseHostCompilerIfAvailable)"
Utf8Output="$(Utf8Output)"
WarningLevel="$(WarningLevel)"
WarningsAsErrors="$(WarningsAsErrors)"
WarningsNotAsErrors="$(WarningsNotAsErrors)"
Win32Icon="$(ApplicationIcon)"
Win32Resource="$(Win32Resource)"
Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile)"
ToolExe="$(CscToolExe)"
ToolPath="$(CscToolPath)" />
</Target>
<Target Name="CreateManifestResourceNames">
<CreateCSharpManifestResourceName Condition="'@(ResxWithNoCulture)' != ''"
ResourceFiles="@(ResxWithNoCulture)" RootNamespace="$(RootNamespace)">
<Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestResourceWithNoCultureName" />
</CreateCSharpManifestResourceName>
<CreateCSharpManifestResourceName Condition="'@(NonResxWithNoCulture)' != ''"
ResourceFiles="@(NonResxWithNoCulture)" RootNamespace="$(RootNamespace)">
<Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestNonResxWithNoCulture" />
</CreateCSharpManifestResourceName>
<CreateCSharpManifestResourceName Condition="'@(ResxWithCulture)' != ''"
ResourceFiles="@(ResxWithCulture)" RootNamespace="$(RootNamespace)">
<Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestResourceWithCultureName" />
</CreateCSharpManifestResourceName>
<CreateCSharpManifestResourceName Condition="'@(NonResxWithCulture)' != ''"
ResourceFiles="@(NonResxWithCulture)" RootNamespace="$(RootNamespace)">
<Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestNonResxWithCulture" />
</CreateCSharpManifestResourceName>
</Target>
<Import Project="Microsoft.Common.targets" />
<PropertyGroup Condition="'$(NoCompilerStandardLib)'=='true' and '$(NoStdLib)'!='true'">
<ResolveAssemblyReferencesDependsOn>$(ResolveAssemblyReferencesDependsOn);_AddCorlibReference</ResolveAssemblyReferencesDependsOn>
</PropertyGroup>
<PropertyGroup>
<TargetFrameworkMonikerAssemblyAttributeText Condition="'$(TargetFrameworkMoniker)' != '' and '$(TargetingClr2Framework)' != 'true'">
// &lt;autogenerated /&gt;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(&quot;$(TargetFrameworkMoniker)&quot;, FrameworkDisplayName = &quot;$(TargetFrameworkMonikerDisplayName)&quot;)]
</TargetFrameworkMonikerAssemblyAttributeText>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,961 @@
<Project DefaultTargets="Build" InitialTargets="_CheckForInvalidConfigurationAndPlatform" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="'$(MicrosoftCommonPropsHasBeenImported)' != 'true' and Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<ImportByWildcardBeforeMicrosoftCommonTargets Condition="'$(ImportByWildcardBeforeMicrosoftCommonTargets)' == ''">true</ImportByWildcardBeforeMicrosoftCommonTargets>
<ImportByWildcardAfterMicrosoftCommonTargets Condition="'$(ImportByWildcardAfterMicrosoftCommonTargets)' == ''">true</ImportByWildcardAfterMicrosoftCommonTargets>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore\*"
Condition="'$(ImportByWildcardBeforeMicrosoftCommonTargets)' == 'true' and Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore')"/>
<Import Project="$(MSBuildProjectFullPath).user" Condition="Exists('$(MSBuildProjectFullPath).user')"/>
<PropertyGroup>
<OutputType Condition="'$(OutputType)' == ''">Exe</OutputType>
<TargetExt Condition="'$(OutputType)' == 'Winexe'">.exe</TargetExt>
<TargetExt Condition="'$(OutputType)' == 'Exe'">.exe</TargetExt>
<TargetExt Condition="'$(OutputType)' == 'Library'">.dll</TargetExt>
<TargetExt Condition="'$(OutputType)' == 'Netmodule'">.netmodule</TargetExt>
</PropertyGroup>
<PropertyGroup>
<ProjectDir Condition="'$(ProjectDir)' == ''">$(MSBuildProjectDirectory)\</ProjectDir>
</PropertyGroup>
<!-- MSBuild defines this even outside of VS, and F# projects depend on it -->
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
</PropertyGroup>
<PropertyGroup>
<AssemblyName Condition="'$(AssemblyName)' == ''">$(MSBuildProjectName)</AssemblyName>
<OutputPath Condition="'$(OutputPath)' != '' and !HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
<OutputPath Condition=" '$(Platform)'=='' and '$(Configuration)'=='' and '$(OutputPath)'=='' ">bin\Debug\</OutputPath>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETFramework</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v4.0</TargetFrameworkVersion>
<TargetFrameworkMoniker Condition="'$(TargetFrameworkMoniker)' == '' and '$(TargetFrameworkProfile)' != ''">$(TargetFrameworkIdentifier),Version=$(TargetFrameworkVersion),Profile=$(TargetFrameworkProfile)</TargetFrameworkMoniker>
<TargetFrameworkMoniker Condition="'$(TargetFrameworkMoniker)' == ''">$(TargetFrameworkIdentifier),Version=$(TargetFrameworkVersion)</TargetFrameworkMoniker>
</PropertyGroup>
<PropertyGroup>
<OutDir Condition="'$(OutDir)' == ''">$(OutputPath)</OutDir>
<OutDir Condition="'$(OutDir)' != '' and !HasTrailingSlash('$(OutDir)')">$(OutDir)\</OutDir>
<_OriginalConfiguration>$(Configuration)</_OriginalConfiguration>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<ConfigurationName Condition="'$(ConfigurationName)' == ''">$(Configuration)</ConfigurationName>
<_OriginalPlatform>$(Platform)</_OriginalPlatform>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<PlatformName Condition="'$(PlatformName)' == ''">$(Platform)</PlatformName>
</PropertyGroup>
<!-- in MSBuild, these properties are set in a separate file that is only imported for .NETFramework -->
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
<AddAdditionalExplicitAssemblyReferences Condition="'$(AddAdditionalExplicitAssemblyReferences)' == ''">true</AddAdditionalExplicitAssemblyReferences>
<AdditionalExplicitAssemblyReferences Condition="'$(AddAdditionalExplicitAssemblyReferences)' == 'true' and '$(TargetFrameworkVersion)' != 'v2.0' and '$(TargetFrameworkVersion)' != 'v3.0'">System.Core;$(AdditionalExplicitAssemblyReferences)</AdditionalExplicitAssemblyReferences>
</PropertyGroup>
<PropertyGroup>
<SkipCopyUnchangedFiles Condition="'$(SkipCopyUnchangedFiles)' == ''">true</SkipCopyUnchangedFiles>
</PropertyGroup>
<PropertyGroup>
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">obj\</BaseIntermediateOutputPath>
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' != '' and !HasTrailingSlash('$(BaseIntermediateOutputPath)')">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath>
<CleanFile Condition="'$(CleanFile)'==''">$(MSBuildProjectFile).FilesWrittenAbsolute.txt</CleanFile>
</PropertyGroup>
<PropertyGroup Condition="'$(IntermediateOutputPath)' == ''">
<IntermediateOutputPath Condition=" '$(PlatformName)' == 'AnyCPU'">$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
<IntermediateOutputPath Condition=" '$(PlatformName)' != 'AnyCPU'">$(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup>
<IntermediateOutputPath Condition="'$(IntermediateOutputPath)' != '' and !HasTrailingSlash('$(IntermediateOutputPath)')">$(IntermediateOutputPath)\</IntermediateOutputPath>
</PropertyGroup>
<ItemGroup>
<IntermediateAssembly Include="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt)" />
<!-- creating this as a item to use FullPath on it, to build TargetPath -->
<_OutDirItem Include="$(OutDir)"/>
</ItemGroup>
<PropertyGroup>
<TargetName Condition="'$(TargetName)' == '' ">$(AssemblyName)</TargetName>
<TargetFileName Condition="'$(TargetFileName)' == '' ">$(TargetName)$(TargetExt)</TargetFileName>
<TargetDir Condition=" '$(TargetDir)' == '' ">@(_OutDirItem->'%(FullPath)')</TargetDir>
<TargetPath Condition=" '$(TargetPath)' == '' ">@(_OutDirItem->'%(FullPath)\$(TargetFileName)')</TargetPath>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildProjectFullPath);$(MSBuildToolsPath)\Microsoft.Common.targets</MSBuildAllProjects>
<KeyOriginatorFile Condition=" '$(SignAssembly)' == 'true' ">$(AssemblyOriginatorKeyFile)</KeyOriginatorFile>
<TargetingClr2Framework Condition="('$(TargetFrameworkIdentifier)' == '.NETFramework') and ('$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5')">true</TargetingClr2Framework>
</PropertyGroup>
<Target Name="_CheckForInvalidConfigurationAndPlatform">
<Error Condition=" '$(OutputPath)' == '' and '$(SkipInvalidConfigurations)' != 'true'"
Text="'OutputPath' property is not set for this project. Usually this is caused by invalid Configuration/Platform combination. Original values: Configuration: $(_OriginalConfiguration) Platform: $(_OriginalPlatform)."/>
<Warning Condition=" '$(OutputPath)' == '' and '$(SkipInvalidConfigurations)' == 'true'"
Text="'OutputPath' property is not set for this project. Usually this is caused by invalid Configuration/Platform combination. Original values: Configuration: $(_OriginalConfiguration) Platform: $(_OriginalPlatform)."/>
<!-- If OutDir is specified via the command line, then the earlier check
to add a trailing slash won't have any affect, so error here. -->
<Error
Condition="'$(OutDir)' != '' and !HasTrailingSlash('$(OutDir)')"
Text="OutDir property must end with a slash."/>
</Target>
<PropertyGroup>
<PrepareForBuildDependsOn>AssignLinkMetadata</PrepareForBuildDependsOn>
</PropertyGroup>
<Target Name="PrepareForBuild" DependsOnTargets="$(PrepareForBuildDependsOn)">
<Message Importance="High" Text="Configuration: $(Configuration) Platform: $(Platform)"/>
<!-- Look for app.config, if $(AppConfig) is specified, then use that. Else look in
@(None) and @(Content) -->
<CreateItem Include="$(AppConfig)" Condition="'$(AppConfig)' != ''"
AdditionalMetadata="TargetPath=$(TargetFileName).config">
<Output TaskParameter="Include" ItemName="AppConfigWithTargetPath" />
</CreateItem>
<FindAppConfigFile PrimaryList="@(None)" SecondaryList="@(Content)" TargetPath="$(TargetFileName).config"
Condition="'$(AppConfig)' == ''">
<Output TaskParameter="AppConfigFile" ItemName="AppConfigWithTargetPath"/>
</FindAppConfigFile>
<MakeDir
Directories="$(OutDir);$(IntermediateOutputPath);@(DocFileItem->'%(RelativeDir)')"
/>
</Target>
<Target Name="AssignLinkMetadata">
<AssignLinkMetadata Items="@(EmbeddedResource)" Condition="'@(EmbeddedResource)' != '' and '%(EmbeddedResource.DefiningProjectFullPath)' != '$(MSBuildProjectFullPath)'">
<Output TaskParameter="OutputItems" ItemName="_EmbeddedResourceWithLinkAssigned" />
</AssignLinkMetadata>
<ItemGroup>
<EmbeddedResource Remove="@(_EmbeddedResourceWithLinkAssigned)" />
<EmbeddedResource Include="@(_EmbeddedResourceWithLinkAssigned)" />
<_EmbeddedResourceWithLinkAssigned Remove="@(_EmbeddedResourceWithLinkAssigned)" />
</ItemGroup>
</Target>
<PropertyGroup>
<GetFrameworkPathsDependsOn />
</PropertyGroup>
<Target Name="GetFrameworkPaths"
Condition="'$(TargetFrameworkIdentifier)' == '' or '$(TargetFrameworkIdentifier)' == '.NETFramework'"
DependsOnTargets="$(GetFrameworkPathsDependsOn)">
<GetFrameworkPath>
<Output Condition="'$(TargetFrameworkVersion)' == 'v4.5' or '$(TargetFrameworkVersion)' == 'v4.5.1' or '$(TargetFrameworkVersion)' == 'v4.5.2' or '$(TargetFrameworkVersion)' == 'v4.6' or '$(TargetFrameworkVersion)' == 'v4.6.1' or '$(TargetFrameworkVersion)' == 'v4.6.2'"
TaskParameter="FrameworkVersion45Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
<Output Condition="'$(TargetFrameworkVersion)' == 'v4.0'"
TaskParameter="FrameworkVersion40Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
<Output Condition="'$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion35Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
<Output Condition="'$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion30Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
<Output Condition="'$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'"
TaskParameter="FrameworkVersion20Path"
ItemName="_CombinedTargetFrameworkDirectoriesItem"/>
</GetFrameworkPath>
<CreateProperty Value="@(_CombinedTargetFrameworkDirectoriesItem)">
<Output TaskParameter="Value" PropertyName="TargetFrameworkDirectory"/>
</CreateProperty>
<Warning Text="TargetFrameworkVersion '$(TargetFrameworkVersion)' not supported by this toolset (ToolsVersion: $(MSBuildToolsVersion))."
Condition="'$(TargetFrameworkVersion)' != 'v4.6.2' and '$(TargetFrameworkVersion)' != 'v4.6.1' and '$(TargetFrameworkVersion)' != 'v4.6' and '$(TargetFrameworkVersion)' != 'v4.5.2' and '$(TargetFrameworkVersion)' != 'v4.5.1' and '$(TargetFrameworkVersion)' != 'v4.5' and '$(TargetFrameworkVersion)' != 'v4.0' and '$(TargetFrameworkVersion)' != 'v3.5' and '$(TargetFrameworkVersion)' != 'v3.0' and '$(TargetFrameworkVersion)' != 'v2.0'"/>
</Target>
<PropertyGroup>
<GetReferenceAssemblyPathsDependsOn />
</PropertyGroup>
<Target Name="GetReferenceAssemblyPaths" DependsOnTargets="$(GetReferenceAssemblyPathsDependsOn)">
<!-- in case of .NETFramework, $(TargetFrameworkDirectory) would have been set by
GetFrameworkPaths, if it hasn't been changed, then clear it, to avoid duplicates -->
<CreateProperty Value="" Condition="'@(_CombinedTargetFrameworkDirectoriesItem)' == '$(TargetFrameworkDirectory)'">
<Output TaskParameter="Value" PropertyName="TargetFrameworkDirectory"/>
</CreateProperty>
<GetReferenceAssemblyPaths
Condition="'$(TargetFrameworkMoniker)' != '' and '$(_TargetFrameworkDirectories)' == ''"
TargetFrameworkMoniker="$(TargetFrameworkMoniker)"
RootPath="$(TargetFrameworkRootPath)">
<Output TaskParameter="ReferenceAssemblyPaths" PropertyName="_TargetFrameworkDirectories"/>
<Output TaskParameter="FullFrameworkReferenceAssemblyPaths" PropertyName="_FullFrameworkReferenceAssemblyPaths"/>
<Output TaskParameter="TargetFrameworkMonikerDisplayName" PropertyName="TargetFrameworkMonikerDisplayName"/>
</GetReferenceAssemblyPaths>
<!-- Remove duplicates. -->
<ItemGroup>
<_TargetFrameworkDirectories Include="$(_TargetFrameworkDirectories);$(TargetFrameworkDirectory)" KeepDuplicates="false" />
</ItemGroup>
<PropertyGroup>
<TargetFrameworkDirectory>@(_TargetFrameworkDirectories)</TargetFrameworkDirectory>
</PropertyGroup>
<ItemGroup Condition="'$(ImplicitlyExpandDesignTimeFacades)' == 'true'">
<DesignTimeFacadeDirectoryRoots Include="$(TargetFrameworkDirectory)" />
<DesignTimeFacadeDirectories Include="%(DesignTimeFacadeDirectoryRoots.Identity)\Facades\" Condition="Exists('%(DesignTimeFacadeDirectoryRoots.Identity)\Facades\')" />
<_DesignTimeFacadeAssemblies Include="%(DesignTimeFacadeDirectories.Identity)\*.dll"/>
</ItemGroup>
<PropertyGroup Condition="'@(DesignTimeFacadeDirectories)' != ''">
<TargetFrameworkDirectory>$(TargetFrameworkDirectory);@(DesignTimeFacadeDirectories)</TargetFrameworkDirectory>
</PropertyGroup>
</Target>
<PropertyGroup>
<AllowedReferenceAssemblyFileExtensions Condition=" '$(AllowedReferenceAssemblyFileExtensions)' == '' ">
.exe;
.dll
</AllowedReferenceAssemblyFileExtensions>
<AllowedReferenceRelatedFileExtensions Condition=" '$(AllowedReferenceRelatedFileExtensions)' == '' ">
.exe.mdb;
.dll.mdb;
.pdb;
.xml
</AllowedReferenceRelatedFileExtensions>
<AssemblySearchPaths Condition="'$(AssemblySearchPaths)' == ''">
{CandidateAssemblyFiles};
$(ReferencePath);
@(AdditionalReferencePath);
{HintPathFromItem};
{TargetFrameworkDirectory};
{PkgConfig};
{GAC};
{RawFileName};
$(OutDir)
</AssemblySearchPaths>
<ResolveReferencesDependsOn>
BeforeResolveReferences;
ResolveProjectReferences;
ResolveAssemblyReferences;
AfterResolveReferences
</ResolveReferencesDependsOn>
<ResolveAssemblyReferencesDependsOn>
GetFrameworkPaths;
GetReferenceAssemblyPaths;
PrepareForBuild
</ResolveAssemblyReferencesDependsOn>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFrameworkMoniker)' != ''">
<TargetFrameworkMonikerAssemblyAttributesPath Condition="'$(TargetFrameworkMonikerAssemblyAttributesPath)' == ''">$(IntermediateOutputPath)$(TargetFrameworkMoniker).AssemblyAttribute$(DefaultLanguageSourceExtension)</TargetFrameworkMonikerAssemblyAttributesPath>
<GenerateTargetFrameworkAttribute Condition="'$(GenerateTargetFrameworkAttribute)' == '' and '$(TargetFrameworkMoniker)'
!= '' and '$(TargetingClr2Framework)' != 'true'">true</GenerateTargetFrameworkAttribute>
</PropertyGroup>
<ItemGroup Condition="'$(GenerateTargetFrameworkAttribute)' == 'true'">
<FileWrites Include="$(TargetFrameworkMonikerAssemblyAttributesPath)" />
</ItemGroup>
<Target Name="_GenerateTargetFrameworkMonikerAttribute"
DependsOnTargets="PrepareForBuild;GetReferenceAssemblyPaths"
Inputs="$(MSBuildToolsPath)\Microsoft.Common.targets"
Outputs="$(TargetFrameworkMonikerAssemblyAttributesPath)">
<WriteLinesToFile
File="$(TargetFrameworkMonikerAssemblyAttributesPath)"
Lines="$(TargetFrameworkMonikerAssemblyAttributeText)"
Overwrite="true"
ContinueOnError="true"
Condition="'@(Compile)' != '' and '$(TargetFrameworkMonikerAssemblyAttributeText)' != ''"
/>
</Target>
<Target Name="GenerateTargetFrameworkMonikerAttribute"
DependsOnTargets="_GenerateTargetFrameworkMonikerAttribute"
Condition="'$(GenerateTargetFrameworkAttribute)' == 'true'">
<ItemGroup Condition="'@(Compile)' != '' and '$(TargetFrameworkMonikerAssemblyAttributeText)' != ''">
<Compile Include="$(TargetFrameworkMonikerAssemblyAttributesPath)"/>
</ItemGroup>
</Target>
<Target Name="ResolveReferences" DependsOnTargets="$(ResolveReferencesDependsOn)"/>
<Target Name="BeforeResolveReferences" />
<Target Name="AfterResolveReferences" />
<Target Name="ResolveAssemblyReferences" DependsOnTargets="$(ResolveAssemblyReferencesDependsOn)">
<CreateItem Include="@(Reference)" Exclude="$(AdditionalExplicitAssemblyReferences)">
<Output TaskParameter="Include" ItemName="_Reference"/>
</CreateItem>
<CreateItem Include="$(AdditionalExplicitAssemblyReferences)">
<Output TaskParameter="Include" ItemName="_Reference"/>
</CreateItem>
<ResolveAssemblyReference
Assemblies="@(_Reference)"
AssemblyFiles="@(ChildProjectReferences);@(_ExplicitReference)"
SearchPaths="$(AssemblySearchPaths)"
CandidateAssemblyFiles="@(Content);@(None)"
TargetFrameworkDirectories="$(TargetFrameworkDirectory)"
AllowedAssemblyExtensions="$(AllowedReferenceAssemblyFileExtensions)"
AllowedRelatedFileExtensions="$(AllowedReferenceRelatedFileExtensions)"
FindDependencies="true"
FindSatellites="true"
FindRelatedFiles="true"
TargetFrameworkMoniker="$(TargetFrameworkMoniker)"
TargetFrameworkMonikerDisplayName="$(TargetFrameworkMonikerDisplayName)"
TargetFrameworkVersion="$(TargetFrameworkVersion)"
>
<Output TaskParameter="ResolvedFiles" ItemName="ResolvedFiles"/>
<Output TaskParameter="ResolvedFiles" ItemName="ReferencePath"/>
<Output TaskParameter="ResolvedDependencyFiles" ItemName="ReferenceDependencyPaths"/>
<Output TaskParameter="RelatedFiles" ItemName="_ReferenceRelatedPaths"/>
<Output TaskParameter="SatelliteFiles" ItemName="ReferenceSatellitePaths"/>
<Output TaskParameter="CopyLocalFiles" ItemName="ReferenceCopyLocalPaths"/>
<Output TaskParameter="DependsOnSystemRuntime" PropertyName="DependsOnSystemRuntime"/>
<!-- FIXME: backwards compatibility -->
<Output TaskParameter="ResolvedDependencyFiles" ItemName="_ResolvedDependencyFiles"/>
</ResolveAssemblyReference>
</Target>
<Target
Name="AssignProjectConfiguration"
Condition="'@(ProjectReference)' != ''">
<!-- assign configs if building a solution file -->
<AssignProjectConfiguration
ProjectReferences = "@(ProjectReference)"
SolutionConfigurationContents = "$(CurrentSolutionConfigurationContents)"
Condition="$(CurrentSolutionConfigurationContents) != '' and ('$(BuildingSolutionFile)' == 'true' or '$(BuildingInsideVisualStudio)' == 'true')">
<Output TaskParameter = "AssignedProjects" ItemName = "ProjectReferenceWithConfiguration"/>
</AssignProjectConfiguration>
<!-- Else, just -->
<CreateItem Include="@(ProjectReference)" Condition="$(CurrentSolutionConfigurationContents) == '' or ('$(BuildingSolutionFile)' != 'true' and '$(BuildingInsideVisualStudio)' != 'true')">
<Output TaskParameter="Include" ItemName="ProjectReferenceWithConfiguration"/>
</CreateItem>
</Target>
<!-- Split projects into 2 lists
ProjectReferenceWithConfigurationExistent: Projects existent on disk
ProjectReferenceWithConfigurationNonExistent: Projects non-existent on disk -->
<Target Name="SplitProjectReferencesByExistent"
DependsOnTargets="AssignProjectConfiguration">
<CreateItem Include="@(ProjectReferenceWithConfiguration)" Condition="'@(ProjectReferenceWithConfiguration)' != ''">
<Output TaskParameter="Include" ItemName="ProjectReferenceWithConfigurationExistent"
Condition="Exists ('%(ProjectReferenceWithConfiguration.Identity)')"/>
<Output TaskParameter="Include" ItemName="ProjectReferenceWithConfigurationNonExistent"
Condition="!Exists ('%(ProjectReferenceWithConfiguration.Identity)')"/>
</CreateItem>
</Target>
<Target
Name="ResolveProjectReferences"
DependsOnTargets="SplitProjectReferencesByExistent"
>
<!-- If building from a .sln.proj or from IDE, then referenced projects have already
been built, so just get the target paths -->
<MSBuild
Projects="@(ProjectReferenceWithConfigurationExistent)"
Targets="GetTargetPath"
Properties="%(ProjectReferenceWithConfigurationExistent.SetConfiguration); %(ProjectReferenceWithConfigurationExistent.SetPlatform)"
Condition="'@(ProjectReferenceWithConfigurationExistent)' != '' and ('$(BuildingSolutionFile)' == 'true' or '$(BuildingInsideVisualStudio)' == 'true')">
<Output TaskParameter="TargetOutputs" ItemName="ChildProjectReferences" Condition="'%(ProjectReferenceWithConfigurationExistent.ReferenceOutputAssembly)' != 'false'"/>
</MSBuild>
<!-- Building a project directly, build the referenced the projects also -->
<MSBuild
Projects="@(ProjectReferenceWithConfigurationExistent)"
Properties="%(ProjectReferenceWithConfigurationExistent.SetConfiguration); %(ProjectReferenceWithConfigurationExistent.SetPlatform)"
Condition="'@(ProjectReferenceWithConfigurationExistent)' != '' and '$(BuildingSolutionFile)' != 'true' and '$(BuildingInsideVisualStudio)' != 'true' ">
<Output TaskParameter="TargetOutputs" ItemName="ChildProjectReferences" Condition="'%(ProjectReferenceWithConfigurationExistent.ReferenceOutputAssembly)' != 'false'"/>
</MSBuild>
<Warning Text="Referenced Project %(ProjectReferenceWithConfigurationNonExistent.Identity) not found, ignoring."
Condition="'@(ProjectReferenceWithConfigurationNonExistent)' != ''"/>
</Target>
<Target Name = "CopyFilesMarkedCopyLocal">
<Copy
SourceFiles="@(ReferenceCopyLocalPaths)"
DestinationFiles="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
<Output TaskParameter = "DestinationFiles" ItemName = "FileWritesShareable"/>
</Copy>
</Target>
<Target Name="_ComputeNonExistentFileProperty" Condition='false'>
<CreateProperty Value="__NonExistentSubDir__\__NonExistentFile__">
<Output TaskParameter="Value" PropertyName="NonExistentFile"/>
</CreateProperty>
</Target>
<PropertyGroup>
<BuildDependsOn>
BuildOnlySettings;
BeforeBuild;
CoreBuild;
AfterBuild
</BuildDependsOn>
</PropertyGroup>
<Target Name="BuildOnlySettings"/>
<Target Name="BeforeBuild"/>
<Target Name="AfterBuild"/>
<Target Name="Build" DependsOnTargets="$(BuildDependsOn)" Outputs="$(TargetPath)"/>
<PropertyGroup>
<CoreBuildDependsOn>
PrepareForBuild;
GetFrameworkPaths;
GetReferenceAssemblyPaths;
PreBuildEvent;
ResolveReferences;
CopyFilesMarkedCopyLocal;
PrepareResources;
Compile;
PrepareForRun;
DeployOutputFiles;
_RecordCleanFile;
PostBuildEvent
</CoreBuildDependsOn>
</PropertyGroup>
<Target
Name="CoreBuild"
DependsOnTargets="$(CoreBuildDependsOn)"
Outputs="$(OutDir)$(AssemblyName)$(TargetExt)">
<OnError ExecuteTargets="_TimestampAfterCompile;PostBuildEvent"
Condition=" '$(RunPostBuildEvent)' == 'Always' or '$(RunPostBuildEvent)' == 'OnOutputUpdated'"/>
<OnError ExecuteTargets="_RecordCleanFile" />
</Target>
<PropertyGroup>
<CompileDependsOn>
ResolveReferences;
GenerateTargetFrameworkMonikerAttribute;
BeforeCompile;
_TimestampBeforeCompile;
CoreCompile;
_TimestampAfterCompile;
AfterCompile
</CompileDependsOn>
</PropertyGroup>
<Target Name="BeforeCompile" />
<Target Name="AfterCompile" />
<Target Name="Compile" DependsOnTargets="$(CompileDependsOn)"/>
<PropertyGroup>
<PrepareForRunDependsOn>
DeployOutputFiles
</PrepareForRunDependsOn>
</PropertyGroup>
<Target Name="PrepareForRun" DependsOnTargets="$(PrepareForRunDependsOn)"/>
<PropertyGroup>
<PrepareResourcesDependsOn>
AssignTargetPaths;
SplitResourcesByCulture;
CreateManifestResourceNames;
CopyNonResxEmbeddedResources;
GenerateResources;
GenerateSatelliteAssemblies;
CompileLicxFiles
</PrepareResourcesDependsOn>
</PropertyGroup>
<Target Name="PrepareResources" DependsOnTargets="$(PrepareResourcesDependsOn)" />
<Target Name="SplitResourcesByCulture" DependsOnTargets="AssignTargetPaths">
<!-- Extract .licx files into @(LicxFiles) -->
<CreateItem Include="@(EmbeddedResourceWithTargetPath)" Condition="'%(Extension)' == '.licx'">
<Output TaskParameter="Include" ItemName="LicxFiles"/>
</CreateItem>
<!-- Split *remaining* resource files into various groups.. -->
<AssignCulture Files="@(EmbeddedResourceWithTargetPath)" Condition="'%(Extension)' != '.licx'">
<Output TaskParameter="AssignedFilesWithNoCulture" ItemName="ResourcesWithNoCulture"/>
<Output TaskParameter="AssignedFilesWithCulture" ItemName="ResourcesWithCulture"/>
</AssignCulture>
<CreateItem Include="@(ResourcesWithNoCulture)" Condition="'%(Extension)' == '.resx'">
<Output TaskParameter="Include" ItemName="ResxWithNoCulture"/>
</CreateItem>
<CreateItem Include="@(ResourcesWithNoCulture)" Condition="'%(Extension)' != '.resx'">
<Output TaskParameter="Include" ItemName="NonResxWithNoCulture"/>
</CreateItem>
<CreateItem Include="@(ResourcesWithCulture)" Condition="'%(Extension)' == '.resx'">
<Output TaskParameter="Include" ItemName="ResxWithCulture"/>
</CreateItem>
<CreateItem Include="@(ResourcesWithCulture)" Condition="'%(Extension)' != '.resx'">
<Output TaskParameter="Include" ItemName="NonResxWithCulture"/>
</CreateItem>
</Target>
<!-- Copy non-resx resources to their manifest resource names, this is what the compiler expects -->
<Target Name = "CopyNonResxEmbeddedResources"
Condition = "'@(NonResxWithCulture)' != '' or '@(NonResxWithNoCulture)' != '' or '@(ManifestNonResxWithCulture)' != '' or '@(ManifestNonResxWithNoCulture)' != ''">
<MakeDir Directories="$(IntermediateOutputPath)%(ManifestNonResxWithCulture.Culture)"/>
<Copy SourceFiles = "@(NonResxWithCulture)"
DestinationFiles = "@(ManifestNonResxWithCulture->'$(IntermediateOutputPath)%(Identity)')"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
<Output TaskParameter = "DestinationFiles" ItemName = "ManifestNonResxWithCultureOnDisk"/>
<Output TaskParameter = "DestinationFiles" ItemName = "FileWrites"/>
</Copy>
<Copy SourceFiles = "@(NonResxWithNoCulture)"
DestinationFiles = "@(ManifestNonResxWithNoCulture->'$(IntermediateOutputPath)%(Identity)')"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
<Output TaskParameter = "DestinationFiles" ItemName = "ManifestNonResxWithNoCultureOnDisk"/>
<Output TaskParameter = "DestinationFiles" ItemName = "FileWrites"/>
</Copy>
</Target>
<Target Name = "GenerateResources">
<GenerateResource
Sources = "@(ResxWithNoCulture)"
UseSourcePath = "true"
OutputResources = "@(ManifestResourceWithNoCultureName->'$(IntermediateOutputPath)%(Identity).resources')"
Condition = "'@(ResxWithNoCulture)' != '' ">
<Output TaskParameter = "OutputResources" ItemName = "ManifestResourceWithNoCulture"/>
<Output TaskParameter = "FilesWritten" ItemName = "FileWrites"/>
</GenerateResource>
<GenerateResource
Sources = "@(ResxWithCulture)"
UseSourcePath = "true"
OutputResources = "@(ManifestResourceWithCultureName->'$(IntermediateOutputPath)%(Identity).resources')"
Condition = "'@(ResxWithCulture)' != '' ">
<Output TaskParameter = "OutputResources" ItemName = "ManifestResourceWithCulture"/>
<Output TaskParameter = "FilesWritten" ItemName = "FileWrites"/>
</GenerateResource>
</Target>
<Target Name="GenerateSatelliteAssemblies"
Inputs="@(ManifestResourceWithCulture);@(ManifestNonResxWithCultureOnDisk)"
Outputs="$(IntermediateOutputPath)%(Culture)\$(AssemblyName).resources.dll" >
<!-- @(NonResxWithCulture) - rename files to ManifestNon.. and then use for AL -->
<MakeDir Directories = "$(IntermediateOutputPath)%(ManifestResourceWithCulture.Culture)" Condition = "'@(ManifestResourceWithCulture)' != ''" />
<MakeDir Directories = "$(IntermediateOutputPath)%(ManifestNonResxWithCultureOnDisk.Culture)" Condition = "'@(ManifestNonResxWithCultureOnDisk)' != ''" />
<AL
Culture = "%(Culture)"
DelaySign="$(DelaySign)"
EmbedResources = "@(ManifestResourceWithCulture);@(ManifestNonResxWithCultureOnDisk)"
KeyFile="$(KeyOriginatorFile)"
ToolExe="$(AlToolExe)"
ToolPath="$(AlToolPath)"
OutputAssembly = "$(IntermediateOutputPath)%(Culture)\$(AssemblyName).resources.dll" >
<Output TaskParameter="OutputAssembly" ItemName="FileWrites"/>
</AL>
<CreateItem
Include = "$(IntermediateOutputPath)%(Culture)\$(AssemblyName).resources.dll"
AdditionalMetadata = "Culture=%(Culture)"
Condition = "'@(ManifestResourceWithCulture)' != '' or '@(ManifestNonResxWithCultureOnDisk)' != ''">
<Output TaskParameter = "Include" ItemName = "IntermediateSatelliteAssemblies" />
</CreateItem>
</Target>
<PropertyGroup>
<CompileLicxFilesDependsOn></CompileLicxFilesDependsOn>
</PropertyGroup>
<Target Name = "CompileLicxFiles"
Condition = "'@(LicxFiles)' != ''"
DependsOnTargets = "$(CompileLicxFilesDependsOn)"
Outputs = "$(IntermediateOutputPath)$(TargetFileName).licenses">
<LC
Sources = "@(LicxFiles)"
LicenseTarget = "$(TargetFileName)"
OutputDirectory = "$(IntermediateOutputPath)"
OutputLicense = "$(IntermediateOutputPath)$(TargetFileName).licenses"
ReferencedAssemblies = "@(ReferencePath);@(ReferenceDependencyPaths)"
ToolPath = "$(LCToolPath)"
ToolExe = "$(LCToolExe)">
<Output TaskParameter="OutputLicense" ItemName="CompiledLicenseFile"/>
<Output TaskParameter="OutputLicense" ItemName="FileWrites"/>
</LC>
</Target>
<!-- Assign target paths to files that will need to be copied along with the project -->
<Target Name = "AssignTargetPaths">
<AssignTargetPath Files="@(None)" RootFolder="$(MSBuildProjectDirectory)">
<Output TaskParameter="AssignedFiles" ItemName="NoneWithTargetPath"/>
</AssignTargetPath>
<AssignTargetPath Files="@(Content)" RootFolder="$(MSBuildProjectDirectory)">
<Output TaskParameter="AssignedFiles" ItemName="ContentWithTargetPath"/>
</AssignTargetPath>
<AssignTargetPath Files="@(EmbeddedResource)" RootFolder="$(MSBuildProjectDirectory)">
<Output TaskParameter="AssignedFiles" ItemName="EmbeddedResourceWithTargetPath"/>
</AssignTargetPath>
</Target>
<Target Name="DeployOutputFiles"
DependsOnTargets="PrepareResources;CoreCompile;_CopyDeployFilesToOutputDirectory;_CopyAppConfigFile">
<Copy
SourceFiles="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb"
Condition="'$(OutDir)' != '' and Exists('$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb')"
DestinationFolder="$(OutDir)"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)" >
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
</Copy>
<Copy
SourceFiles="$(IntermediateOutputPath)$(AssemblyName).pdb"
Condition="'$(OutDir)' != '' and Exists('$(IntermediateOutputPath)$(AssemblyName).pdb')"
DestinationFolder="$(OutDir)"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)" >
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
</Copy>
<Copy SourceFiles="@(IntermediateAssembly)" Condition="'$(OutDir)' != '' and Exists ('@(IntermediateAssembly)')" DestinationFolder="$(OutDir)" SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
</Copy>
<Copy
SourceFiles = "@(IntermediateSatelliteAssemblies)"
DestinationFiles = "@(IntermediateSatelliteAssemblies->'$(OutDir)\%(Culture)\$(AssemblyName).resources.dll')"
Condition = "'@(IntermediateSatelliteAssemblies)' != ''"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
</Copy>
</Target>
<Target Name="_CopyDeployFilesToOutputDirectory"
DependsOnTargets="GetCopyToOutputDirectoryItems;
_CopyDeployFilesToOutputDirectoryAlways;
_CopyDeployFilesToOutputDirectoryPreserveNewest"/>
<Target Name="_CopyDeployFilesToOutputDirectoryPreserveNewest"
Condition="'@(ItemsToCopyToOutputDirectoryPreserveNewest)' != ''"
Inputs="@(ItemsToCopyToOutputDirectoryPreserveNewest)"
Outputs="@(ItemsToCopyToOutputDirectoryPreserveNewest->'$(OutDir)%(TargetPath)')">
<Copy SourceFiles="@(ItemsToCopyToOutputDirectoryPreserveNewest)"
DestinationFiles="@(ItemsToCopyToOutputDirectoryPreserveNewest->'$(OutDir)%(TargetPath)')"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
</Copy>
</Target>
<!-- Copy if newer -->
<Target Name="_CopyDeployFilesToOutputDirectoryAlways"
Condition="'@(ItemsToCopyToOutputDirectoryAlways)' != ''">
<Copy SourceFiles="@(ItemsToCopyToOutputDirectoryAlways)"
DestinationFiles="@(ItemsToCopyToOutputDirectoryAlways->'$(OutDir)%(TargetPath)')">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
</Copy>
</Target>
<Target Name="_CopyAppConfigFile" Condition="'@(AppConfigWithTargetPath)' != ''"
Inputs="@(AppConfigWithTargetPath)"
Outputs="@(AppConfigWithTargetPath->'$(OutDir)%(TargetPath)')">
<Copy SourceFiles="@(AppConfigWithTargetPath)"
DestinationFiles="@(AppConfigWithTargetPath->'$(OutDir)%(TargetPath)')">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
</Copy>
</Target>
<Target Name="GetTargetPath" Outputs="$(TargetPath)"/>
<Target Name="GetCopyToOutputDirectoryItems"
Outputs="@(AllItemsFullPathWithTargetPath)"
DependsOnTargets="AssignTargetPaths;SplitProjectReferencesByExistent">
<!-- FIXME: handle .vcproj
FIXME: Private ProjectReferences are honored only in 3.5
-->
<MSBuild
Projects="@(ProjectReferenceWithConfigurationExistent)"
Targets="GetCopyToOutputDirectoryItems"
Condition="'@(ProjectReferenceWithConfigurationExistent)' != '' and '%(ProjectReferenceWithConfigurationExistent.Private)' != 'false'">
<Output TaskParameter="TargetOutputs" ItemName="AllChildProjectItemsWithTargetPath"/>
</MSBuild>
<!-- Process items from child project. The outputs need to have full path
as they'll be used from other projects -->
<CreateItem
Include="@(AllChildProjectItemsWithTargetPath->'%(FullPath)')"
Condition="'%(AllChildProjectItemsWithTargetPath.CopyToOutputDirectory)' == 'Always' or '%(AllChildProjectItemsWithTargetPath.CopyToOutputDirectory)' == 'PreserveNewest'">
<Output TaskParameter="Include" ItemName="AllItemsFullPathWithTargetPath"/>
<Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryAlways"
Condition="'%(AllChildProjectItemsWithTargetPath.CopyToOutputDirectory)'=='Always'"/>
<Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryPreserveNewest"
Condition="'%(AllChildProjectItemsWithTargetPath.CopyToOutputDirectory)'=='PreserveNewest'"/>
</CreateItem>
<!-- Process _this_ project's items -->
<CreateItem
Include="@(NoneWithTargetPath->'%(FullPath)')"
Condition="'%(NoneWithTargetPath.CopyToOutputDirectory)' == 'Always' or '%(NoneWithTargetPath.CopyToOutputDirectory)' == 'PreserveNewest'">
<Output TaskParameter="Include" ItemName="AllItemsFullPathWithTargetPath"/>
<Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryAlways"
Condition="'%(NoneWithTargetPath.CopyToOutputDirectory)'=='Always'"/>
<Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryPreserveNewest"
Condition="'%(NoneWithTargetPath.CopyToOutputDirectory)'=='PreserveNewest'"/>
</CreateItem>
<CreateItem
Include="@(ContentWithTargetPath->'%(FullPath)')"
Condition="'%(ContentWithTargetPath.CopyToOutputDirectory)' == 'Always' or '%(ContentWithTargetPath.CopyToOutputDirectory)' == 'PreserveNewest'">
<Output TaskParameter="Include" ItemName="AllItemsFullPathWithTargetPath"/>
<Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryAlways"
Condition="'%(ContentWithTargetPath.CopyToOutputDirectory)'=='Always'"/>
<Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryPreserveNewest"
Condition="'%(ContentWithTargetPath.CopyToOutputDirectory)'=='PreserveNewest'"/>
</CreateItem>
<CreateItem
Include="@(EmbeddedResourceWithTargetPath->'%(FullPath)')"
Condition="'%(EmbeddedResourceWithTargetPath.CopyToOutputDirectory)' == 'Always' or '%(EmbeddedResourceWithTargetPath.CopyToOutputDirectory)' == 'PreserveNewest'">
<Output TaskParameter="Include" ItemName="AllItemsFullPathWithTargetPath"/>
<Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryAlways"
Condition="'%(EmbeddedResourceWithTargetPath.CopyToOutputDirectory)'=='Always'"/>
<Output TaskParameter="Include" ItemName="ItemsToCopyToOutputDirectoryPreserveNewest"
Condition="'%(EmbeddedResourceWithTargetPath.CopyToOutputDirectory)'=='PreserveNewest'"/>
</CreateItem>
</Target>
<!-- Pre/Post BuildEvents -->
<PropertyGroup>
<PreBuildEventDependsOn />
</PropertyGroup>
<Target Name="PreBuildEvent"
Condition="'$(PreBuildEvent)' != ''"
DependsOnTargets="$(PreBuildEventDependsOn)">
<Exec WorkingDirectory="$(OutDir)" Command="$(PreBuildEvent)" />
</Target>
<!-- PostBuildEvent depends on $(RunPostBuildEvent)
Default: OnBuildSuccess
OnBuildSuccess: Run after a successful build
OnOutputUpdated: Run only if the output assembly got updates
Always: Run always
-->
<PropertyGroup>
<PostBuildEventDependsOn />
</PropertyGroup>
<!-- this gets invoked in two cases, from CoreBuildDependsOn, if the build completes
successfully, OR from OnError in CoreBuild, if the build failed and $(RunPostBuildEvent)
is 'Always' or 'OnOutputUpdated'. Invoke $(PostBuildEvent) if its either Empty (== OnBuildSuccess)
or OnBuildSuccess or Always OR (OnOutputUpdated and output assembly got updated) -->
<Target Name="PostBuildEvent"
Condition="'$(PostBuildEvent)' != '' and
('$(RunPostBuildEvent)' != 'OnOutputUpdated' or
'$(_AssemblyModifiedTimeBeforeCompile)' != '$(_AssemblyModifiedTimeAfterCompile)')"
DependsOnTargets="$(PostBuildEventDependsOn)">
<Exec WorkingDirectory="$(OutDir)" Command="$(PostBuildEvent)" />
</Target>
<!-- Timestamp the output assemblies, required for PostBuildEvent -->
<Target Name="_TimestampBeforeCompile" Condition="'$(RunPostBuildEvent)' == 'OnOutputUpdated'">
<CreateItem Include="%(IntermediateAssembly.ModifiedTime)">
<Output TaskParameter="Include" PropertyName="_AssemblyModifiedTimeBeforeCompile" />
</CreateItem>
</Target>
<Target Name="_TimestampAfterCompile" Condition="'$(RunPostBuildEvent)' == 'OnOutputUpdated'">
<CreateItem Include="%(IntermediateAssembly.ModifiedTime)">
<Output TaskParameter="Include" PropertyName="_AssemblyModifiedTimeAfterCompile" />
</CreateItem>
</Target>
<!-- Rebuild -->
<PropertyGroup>
<RebuildDependsOn>
BeforeRebuild;
Clean;
$(MSBuildProjectDefaultTargets);
AfterRebuild;
</RebuildDependsOn>
<RebuildDependsOn Condition="'$(MSBuildProjectDefaultTargets)' == 'Rebuild'">
BeforeRebuild;
Clean;
Build;
AfterRebuild;
</RebuildDependsOn>
</PropertyGroup>
<Target Name="BeforeRebuild" />
<Target Name="AfterRebuild" />
<Target Name="Rebuild"
DependsOnTargets="$(RebuildDependsOn)"
Outputs="$(TargetPath)"/>
<!-- Clean -->
<Target Name="_RecordCleanFile"
DependsOnTargets="_GetCompileOutputsForClean">
<!-- add to list of previous writes for this platform/config -->
<ReadLinesFromFile File="$(IntermediateOutputPath)$(CleanFile)">
<Output TaskParameter="Lines" ItemName="PreviousFileWrites"/>
</ReadLinesFromFile>
<!-- CopyLocal files: In case all the projects build to common output
directory, then other projects might depend on some of these
CopyLocal files, so delete only the ones under *this* project
directory -->
<FindUnderPath Path="$(MSBuildProjectDirectory)" Files="@(FileWritesShareable)">
<Output TaskParameter="InPath" ItemName="FileWrites"/>
</FindUnderPath>
<RemoveDuplicates Inputs="@(PreviousFileWrites);@(FileWrites->'%(FullPath)')">
<Output TaskParameter="Filtered" ItemName="CombinedFileWrites"/>
</RemoveDuplicates>
<WriteLinesToFile
File="$(IntermediateOutputPath)$(CleanFile)"
Lines="@(CombinedFileWrites)"
Overwrite="true"/>
</Target>
<PropertyGroup>
<CleanDependsOn>
BeforeClean;
CleanReferencedProjects;
CoreClean;
AfterClean
</CleanDependsOn>
</PropertyGroup>
<Target Name="_GetCompileOutputsForClean">
<!-- assembly and debug file in the *intermediate output path* -->
<CreateItem Include="@(IntermediateAssembly)" Condition="Exists('@(IntermediateAssembly)')">
<Output TaskParameter="Include" ItemName="FileWrites"/>
</CreateItem>
<CreateItem Include="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb"
Condition="Exists('$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb')">
<Output TaskParameter="Include" ItemName="FileWrites"/>
</CreateItem>
<CreateItem Include="$(IntermediateOutputPath)$(AssemblyName).pdb"
Condition="Exists('$(IntermediateOutputPath)$(AssemblyName).pdb')">
<Output TaskParameter="Include" ItemName="FileWrites"/>
</CreateItem>
</Target>
<!-- Get the list of files written, for clean -->
<Target Name="_GetCleanFileWrites"
DependsOnTargets="_GetCompileOutputsForClean">
<ReadLinesFromFile File="$(IntermediateOutputPath)$(CleanFile)">
<Output TaskParameter="Lines" ItemName="PreviousFileWrites"/>
</ReadLinesFromFile>
</Target>
<Target Name="CleanReferencedProjects"
DependsOnTargets="AssignProjectConfiguration">
<!-- If building from .sln.proj or from IDE, clean will get handled by them,
else we are building a project directly, from the command line, so
clean the referenced projects -->
<MSBuild Projects="@(ProjectReferenceWithConfigurationExistent)"
Targets="Clean"
Condition=" '$(BuildingSolutionFile)' != 'true' and '$(BuildingInsideVisualStudio)' != 'true' and '@(ProjectReferenceWithConfigurationExistent)' != ''" />
</Target>
<Target Name="Clean" DependsOnTargets="$(CleanDependsOn)"/>
<!-- Override in project to run before/after clean tasks -->
<Target Name="BeforeClean" />
<Target Name="AfterClean" />
<Target Name="CoreClean" DependsOnTargets="_GetCleanFileWrites">
<Delete Files="@(PreviousFileWrites);@(FileWrites)" TreatErrorsAsWarnings="true"/>
<!-- all previous files written for this platform/config have been deleted,
we can safely remove the file list now -->
<Delete Files="$(IntermediateOutputPath)$(CleanFile)" TreatErrorsAsWarnings="true" />
</Target>
<PropertyGroup>
<ImplicitlyExpandDesignTimeFacades>true</ImplicitlyExpandDesignTimeFacades>
<ResolveReferencesDependsOn>
$(ResolveReferencesDependsOn);
ImplicitlyExpandDesignTimeFacades
</ResolveReferencesDependsOn>
<ImplicitlyExpandDesignTimeFacadesDependsOn>
$(ImplicitlyExpandDesignTimeFacadesDependsOn);
GetReferenceAssemblyPaths
</ImplicitlyExpandDesignTimeFacadesDependsOn>
</PropertyGroup>
<Target Name="ImplicitlyExpandDesignTimeFacades" Condition="'$(ImplicitlyExpandDesignTimeFacades)' == 'true'" DependsOnTargets="$(ImplicitlyExpandDesignTimeFacadesDependsOn)">
<PropertyGroup>
<!-- Does one of our dependencies reference a System.Runtime-based portable library? -->
<_HasReferenceToSystemRuntime Condition="'$(DependsOnSystemRuntime)' == 'true' or '%(_ResolvedProjectReferencePaths.TargetPlatformIdentifier)' == 'Portable'">true</_HasReferenceToSystemRuntime>
</PropertyGroup>
<ItemGroup Condition="'$(_HasReferenceToSystemRuntime)' == 'true'">
<!-- If the user has manually referenced these assemblies, remove them so we don't end up with duplicates -->
<ReferencePath Remove="@(_DesignTimeFacadeAssemblies)"/>
<ReferencePath Include="%(_DesignTimeFacadeAssemblies.Identity)">
<WinMDFile>false</WinMDFile>
<CopyLocal>false</CopyLocal>
<ResolvedFrom>ImplicitlyExpandDesignTimeFacades</ResolvedFrom>
</ReferencePath>
<_ResolveAssemblyReferenceResolvedFiles Include="@(ReferencePath)" Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades'" />
</ItemGroup>
<Message Importance="Low" Text="Including @(ReferencePath)" Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandDesignTimeFacades'" />
</Target>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportAfter\*"
Condition="'$(ImportByWildcardAfterMicrosoftCommonTargets)' == 'true' and Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportAfter')"/>
</Project>

View File

@@ -0,0 +1,40 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<UsingTask TaskName="Microsoft.Build.Tasks.AL" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.AssignTargetPath" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.AssignLinkMetadata" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.AssignCulture" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.AssignProjectConfiguration" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.CallTarget" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.CombinePath" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.Copy" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.CreateCSharpManifestResourceName" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<UsingTask TaskName="Microsoft.Build.Tasks.CreateVisualBasicManifestResourceName" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<UsingTask TaskName="Microsoft.Build.Tasks.CreateItem" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.CreateProperty" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.Csc" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.Delete" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.Error" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.Exec" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.FindAppConfigFile" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.FindUnderPath" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.GenerateResource" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.GetAssemblyIdentity" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.GetFrameworkPath" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.GetFrameworkSdkPath" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.GetReferenceAssemblyPaths" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.LC" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.MakeDir" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.Message" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.MSBuild" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.ReadLinesFromFile" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.RemoveDir" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.RemoveDuplicates" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.ResolveAssemblyReference" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.SignFile" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.Touch" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.Vbc" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.Warning" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.WriteCodeFragment" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<UsingTask TaskName="Microsoft.Build.Tasks.WriteLinesToFile" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<UsingTask TaskName="Microsoft.Build.Tasks.XmlPeek" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</Project>

View File

@@ -0,0 +1,120 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DefaultLanguageSourceExtension>.vb</DefaultLanguageSourceExtension>
<Language>VB</Language>
</PropertyGroup>
<PropertyGroup>
<CreateManifestResourceNamesDependsOn></CreateManifestResourceNamesDependsOn>
</PropertyGroup>
<PropertyGroup>
<FinalDefineConstants>CONFIG=&quot;$(Configuration)&quot;</FinalDefineConstants>
<FinalDefineConstants Condition=" '$(DefineDebug)' == 'true' ">$(FinalDefineConstants),DEBUG=-1</FinalDefineConstants>
<FinalDefineConstants Condition=" '$(DefineTrace)' == 'true' ">$(FinalDefineConstants),TRACE=-1</FinalDefineConstants>
<FinalDefineConstants Condition=" '$(MyType)' != '' ">$(FinalDefineConstants),_MyType=&quot;$(MyType)&quot;</FinalDefineConstants>
<FinalDefineConstants Condition=" '$(Platform)' != '' ">$(FinalDefineConstants),PLATFORM=&quot;$(Platform)&quot;</FinalDefineConstants>
<FinalDefineConstants Condition=" '$(Platform)' == '' ">$(FinalDefineConstants),PLATFORM=&quot;AnyCPU&quot;</FinalDefineConstants>
<FinalDefineConstants Condition=" '$(DefineConstants)' != '' ">$(FinalDefineConstants),$(DefineConstants)</FinalDefineConstants>
<_NoWarnings Condition=" '$(WarningLevel)' == '0' ">true</_NoWarnings>
<_NoWarnings Condition=" '$(WarningLevel)' == '1' ">false</_NoWarnings>
<DebugSymbols Condition=" '$(DebugType)' == 'none' ">false</DebugSymbols>
<DebugType Condition=" '$(DebugType)' == 'none' "></DebugType>
<CoreCompileDependsOn></CoreCompileDependsOn>
</PropertyGroup>
<ItemGroup>
<DocFileItem Include="$(DocumentationFile)" Condition="'$(DocumentationFile)'!=''"/>
</ItemGroup>
<Target
Name="CoreCompile"
Inputs="$(MSBuildAllProjects);@(Compile);@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile);@(DocFileItem);
$(KeyOriginatorFile);@(ReferencePath);$(Win32Icon);$(Win32Resource)"
Outputs="@(IntermediateAssembly)"
DependsOnTargets="$(CoreCompileDependsOn)"
>
<Vbc
AdditionalLibPaths="$(AdditionalLibPaths)"
AddModules="@(AddModules)"
BaseAddress="$(BaseAddress)"
CodePage="$(CodePage)"
DebugType="$(DebugType)"
DefineConstants="$(FinalDefineConstants)"
DelaySign="$(DelaySign)"
DisabledWarnings="$(NoWarn)"
DocumentationFile="@(DocFileItem)"
EmitDebugInformation="$(DebugSymbols)"
ErrorReport="$(ErrorReport)"
FileAlignment="$(FileAlignment)"
GenerateDocumentation="$(GenerateDocumentation)"
Imports="@(Import)"
KeyContainer="$(KeyContainerName)"
KeyFile="$(KeyOriginatorFile)"
MainEntryPoint="$(StartupObject)"
NoConfig="true"
NoLogo="$(NoLogo)"
NoStandardLib="$(NoStdLib)"
NoWarnings="$(_NoWarnings)"
Optimize="$(Optimize)"
OptionCompare="$(OptionCompare)"
OptionExplicit="$(OptionExplicit)"
OptionStrict="$(OptionStrict)"
OptionStrictType="$(OptionStrictType)"
OptionInfer="$(OptionInfer)"
OutputAssembly="@(IntermediateAssembly)"
Platform="$(PlatformTarget)"
References="@(ReferencePath)"
RemoveIntegerChecks="$(RemoveIntegerChecks)"
Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile)"
ResponseFiles="$(CompilerResponseFile)"
RootNamespace="$(RootNamespace)"
Sources="@(Compile)"
TargetType="$(OutputType)"
TreatWarningsAsErrors="$(TreatWarningsAsErrors)"
UseHostCompilerIfAvailable="$(UseHostCompilerIfAvailable)"
Utf8Output="$(Utf8Output)"
VBRuntime="$(VBRuntime)"
Verbosity="$(VbcVerbosity)"
WarningsAsErrors="$(WarningsAsErrors)"
WarningsNotAsErrors="$(WarningsNotAsErrors)"
Win32Icon="$(Win32Icon)"
Win32Resource="$(Win32Resource)"
ToolExe="$(VbcToolExe)"
ToolPath="$(VbcToolPath)"
/>
</Target>
<Target Name="CreateManifestResourceNames">
<CreateVisualBasicManifestResourceName Condition="'@(ResxWithNoCulture)' != ''"
ResourceFiles="@(ResxWithNoCulture)" RootNamespace="$(RootNamespace)">
<Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestResourceWithNoCultureName" />
</CreateVisualBasicManifestResourceName>
<CreateVisualBasicManifestResourceName Condition="'@(NonResxWithNoCulture)' != ''"
ResourceFiles="@(NonResxWithNoCulture)" RootNamespace="$(RootNamespace)">
<Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestNonResxWithNoCulture" />
</CreateVisualBasicManifestResourceName>
<CreateVisualBasicManifestResourceName Condition="'@(ResxWithCulture)' != ''"
ResourceFiles="@(ResxWithCulture)" RootNamespace="$(RootNamespace)">
<Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestResourceWithCultureName" />
</CreateVisualBasicManifestResourceName>
<CreateVisualBasicManifestResourceName Condition="'@(NonResxWithCulture)' != ''"
ResourceFiles="@(NonResxWithCulture)" RootNamespace="$(RootNamespace)">
<Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestNonResxWithCulture" />
</CreateVisualBasicManifestResourceName>
</Target>
<Import Project="Microsoft.Common.targets" />
<PropertyGroup>
<VbcToolExe Condition="'$(VbcToolExe)' == ''">vbnc.exe</VbcToolExe>
</PropertyGroup>
</Project>

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,3 @@
# xbuild command line options specified here will be used
# by xbuild on every build, unless /noautoresponse is passed
# on the command line.

View File

@@ -1,2 +1,3 @@
!Binaries/
!bin/
!*.*

View File

@@ -1,2 +1,3 @@
!Binaries/
!bin/
!*.*

View File

@@ -1,2 +1,3 @@
!Binaries/
!bin/
!*.*

View File

@@ -1,2 +1,3 @@
!Binaries/
!bin/
!*.*