<!-- Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm Written by Jomo Fisher --> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <!-- These two property groups inform VS that there is a Platform called .NET 1.1. --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|.NET 1.1' "> <DebugSymbols Condition="'$(DebugSymbols)'==''">true</DebugSymbols> <DebugType Condition="'$(DebugType)'==''">full</DebugType> <Optimize Condition="'$(Optimize)'==''">false</Optimize> <OutputPath Condition="'$(OutputPath)'==''">bin\.NET 1.1\Debug\</OutputPath> <DefineConstants Condition="'$(DefineConstants)'==''">DEBUG;TRACE</DefineConstants> <DefineConstants>$(DefineConstants);TARGETTING_FX_1_1</DefineConstants> <ErrorReport></ErrorReport> <WarningLevel Condition="'$(WarningLevel)'==''">4</WarningLevel> <UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable> <CscToolPath>$(SystemRoot)\Microsoft.NET\Framework\v1.1.4322</CscToolPath> <TargetFrameworkVersion>v1.0</TargetFrameworkVersion> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|.NET 1.1' "> <DebugType Condition="'$(DebugType)'==''">pdbonly</DebugType> <Optimize Condition="'$(Optimize)'==''">true</Optimize> <OutputPath Condition="'$(OutputPath)'==''">bin\.NET 1.1\Release\</OutputPath> <DefineConstants Condition="'$(DefineConstants)'==''">TRACE</DefineConstants> <DefineConstants>$(DefineConstants);TARGETTING_FX_1_1</DefineConstants> <ErrorReport></ErrorReport> <WarningLevel Condition="'$(WarningLevel)'==''">4</WarningLevel> <UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable> <CscToolPath>$(SystemRoot)\Microsoft.NET\Framework\v1.1.4322</CscToolPath> <TargetFrameworkVersion>v1.0</TargetFrameworkVersion> </PropertyGroup> <!-- Import the standard C# targets --> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <!-- Now that the standard targets have been brought in. Override some properties and items it created. --> <PropertyGroup> <AvailablePlatforms>$(AvailablePlatforms),.NET 1.1</AvailablePlatforms> <AssemblySearchPaths Condition=" '$(Platform)' == '.NET 1.1' "> {CandidateAssemblyFiles}; $(ReferencePath); {HintPathFromItem}; {TargetFrameworkDirectory}; {AssemblyFolders}; $(OutputPath); {GAC} </AssemblySearchPaths> <TargetFrameworkDirectory Condition=" '$(Platform)' == '.NET 1.1'"> $(SystemRoot)\Microsoft.NET\Framework\v1.1.4322 </TargetFrameworkDirectory> </PropertyGroup> <ItemGroup Condition=" '$(Platform)' == '.NET 1.1'"> <TargetFrameworkDirectoryItem Include="$(SystemRoot)\Microsoft.NET\Framework\v1.1.4322"> <InProject>false</InProject> </TargetFrameworkDirectoryItem> </ItemGroup> <!-- Override this target from Microsoft.Common.Targets so that we can supply our own value for $(TargetFrameworkDirectory). This controls where assembly resolution logic finds FX assemblies. --> <Target Name="GetFrameworkPaths" DependsOnTargets="$(GetFrameworkPathsDependsOn)"> <!-- Get the path to the target .NET framework directory. --> <GetFrameworkPath Condition=" '$(Platform)' != '.NET 1.1' "> <Output TaskParameter="Path" PropertyName="TargetFrameworkDirectory"/> <Output TaskParameter="Path" ItemName="TargetFrameworkDirectoryItem"/> </GetFrameworkPath> <!-- Get the path to the target .NET framework SDK directory. --> <GetFrameworkSDKPath Condition=" '$(Platform)' != '.NET 1.1' "> <Output TaskParameter="Path" PropertyName="TargetFrameworkSDKDirectory"/> <Output TaskParameter="Path" ItemName="TargetFrameworkSDKDirectoryItem"/> </GetFrameworkSDKPath> </Target> <!-- For 1.1 builds, intercept the call to CorResGen target (which generates 2.0 resources) and slip in a call to our own CoreResGen_1_1.
Handily, the devices version of the ResGen task is able to call the 1.1 version of ResGen directly. --> <UsingTask TaskName="CFResGen" AssemblyFile="$(MSBuildBinPath)\Microsoft.CompactFramework.Build.Tasks.dll" /> <PropertyGroup Condition="'$(Platform)' == '.NET 1.1'"> <ResGenDependsOn>ResolveAssemblyReferences;BeforeResGen;CoreResGen_1_1;AfterResGen</ResGenDependsOn> </PropertyGroup> <Target Name="CoreResGen_1_1" DependsOnTargets="$(CoreResGenDependsOn)">
<CFResGen Condition = " '@(ResxWithNoCulture)' != ''" Sources = "@(ResxWithNoCulture)" UseSourcePath = "$(UseSourcePath)" StateFile = "$(IntermediateOutputPath)$(MSBuildProjectFile).CrossCompileResGen.Cache" OutputResources = "@(ManifestResourceWithNoCultureName->'$(IntermediateOutputPath)%(Identity).resources')" > <!-- Appending to 'FilesWritten' list lets us be part of Clean and Incremental Clean. --> <Output TaskParameter = "FilesWritten" ItemName="FileWrites"/> <Output TaskParameter = "OutputResources" ItemName="ManifestResourceWithNoCulture"/> </CFResGen> <CFResGen Condition = " '@(ResxWithCulture)' != ''" Sources = "@(ResxWithCulture)" UseSourcePath = "$(UseSourcePath)" StateFile = "$(IntermediateOutputPath)$(MSBuildProjectFile).CrossCompileResGen.Cache" OutputResources = "@(ManifestResourceWithCultureName->'$(IntermediateOutputPath)%(Identity).resources')" > <!-- Appending to 'FilesWritten' list lets us be part of Clean and Incremental Clean. --> <Output TaskParameter = "FilesWritten" ItemName="FileWrites"/> <Output TaskParameter = "OutputResources" ItemName="ManifestResourceWithCulture"/>
你可以查查MSDN,里面对每个类或关键字都有写支持哪些版本的framework
Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm
Written by Jomo Fisher
-->
<Project
DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <!--
These two property groups inform VS that there is a Platform called .NET 1.1.
-->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|.NET 1.1' ">
<DebugSymbols Condition="'$(DebugSymbols)'==''">true</DebugSymbols>
<DebugType Condition="'$(DebugType)'==''">full</DebugType>
<Optimize Condition="'$(Optimize)'==''">false</Optimize>
<OutputPath Condition="'$(OutputPath)'==''">bin\.NET 1.1\Debug\</OutputPath>
<DefineConstants Condition="'$(DefineConstants)'==''">DEBUG;TRACE</DefineConstants>
<DefineConstants>$(DefineConstants);TARGETTING_FX_1_1</DefineConstants>
<ErrorReport></ErrorReport>
<WarningLevel Condition="'$(WarningLevel)'==''">4</WarningLevel>
<UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable>
<CscToolPath>$(SystemRoot)\Microsoft.NET\Framework\v1.1.4322</CscToolPath>
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
</PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|.NET 1.1' ">
<DebugType Condition="'$(DebugType)'==''">pdbonly</DebugType>
<Optimize Condition="'$(Optimize)'==''">true</Optimize>
<OutputPath Condition="'$(OutputPath)'==''">bin\.NET 1.1\Release\</OutputPath>
<DefineConstants Condition="'$(DefineConstants)'==''">TRACE</DefineConstants>
<DefineConstants>$(DefineConstants);TARGETTING_FX_1_1</DefineConstants>
<ErrorReport></ErrorReport>
<WarningLevel Condition="'$(WarningLevel)'==''">4</WarningLevel>
<UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable>
<CscToolPath>$(SystemRoot)\Microsoft.NET\Framework\v1.1.4322</CscToolPath>
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
</PropertyGroup> <!--
Import the standard C# targets
-->
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <!--
Now that the standard targets have been brought in. Override some properties
and items it created.
-->
<PropertyGroup>
<AvailablePlatforms>$(AvailablePlatforms),.NET 1.1</AvailablePlatforms> <AssemblySearchPaths Condition=" '$(Platform)' == '.NET 1.1' ">
{CandidateAssemblyFiles};
$(ReferencePath);
{HintPathFromItem};
{TargetFrameworkDirectory};
{AssemblyFolders};
$(OutputPath);
{GAC}
</AssemblySearchPaths> <TargetFrameworkDirectory Condition=" '$(Platform)' == '.NET 1.1'">
$(SystemRoot)\Microsoft.NET\Framework\v1.1.4322
</TargetFrameworkDirectory> </PropertyGroup> <ItemGroup Condition=" '$(Platform)' == '.NET 1.1'">
<TargetFrameworkDirectoryItem Include="$(SystemRoot)\Microsoft.NET\Framework\v1.1.4322">
<InProject>false</InProject>
</TargetFrameworkDirectoryItem>
</ItemGroup> <!--
Override this target from Microsoft.Common.Targets so that we can supply our own
value for $(TargetFrameworkDirectory). This controls where assembly resolution
logic finds FX assemblies.
-->
<Target
Name="GetFrameworkPaths"
DependsOnTargets="$(GetFrameworkPathsDependsOn)"> <!-- Get the path to the target .NET framework directory. -->
<GetFrameworkPath
Condition=" '$(Platform)' != '.NET 1.1' ">
<Output TaskParameter="Path" PropertyName="TargetFrameworkDirectory"/>
<Output TaskParameter="Path" ItemName="TargetFrameworkDirectoryItem"/>
</GetFrameworkPath> <!-- Get the path to the target .NET framework SDK directory. -->
<GetFrameworkSDKPath
Condition=" '$(Platform)' != '.NET 1.1' ">
<Output TaskParameter="Path" PropertyName="TargetFrameworkSDKDirectory"/>
<Output TaskParameter="Path" ItemName="TargetFrameworkSDKDirectoryItem"/>
</GetFrameworkSDKPath> </Target> <!--
For 1.1 builds, intercept the call to CorResGen target (which generates 2.0 resources) and
slip in a call to our own CoreResGen_1_1.
Handily, the devices version of the ResGen task is able to call the 1.1 version of
ResGen directly.
-->
<UsingTask TaskName="CFResGen" AssemblyFile="$(MSBuildBinPath)\Microsoft.CompactFramework.Build.Tasks.dll" />
<PropertyGroup Condition="'$(Platform)' == '.NET 1.1'">
<ResGenDependsOn>ResolveAssemblyReferences;BeforeResGen;CoreResGen_1_1;AfterResGen</ResGenDependsOn>
</PropertyGroup>
<Target
Name="CoreResGen_1_1"
DependsOnTargets="$(CoreResGenDependsOn)">
<CFResGen
Condition = " '@(ResxWithNoCulture)' != ''"
Sources = "@(ResxWithNoCulture)"
UseSourcePath = "$(UseSourcePath)"
StateFile = "$(IntermediateOutputPath)$(MSBuildProjectFile).CrossCompileResGen.Cache"
OutputResources = "@(ManifestResourceWithNoCultureName->'$(IntermediateOutputPath)%(Identity).resources')"
>
<!-- Appending to 'FilesWritten' list lets us be part of Clean and Incremental Clean. -->
<Output TaskParameter = "FilesWritten" ItemName="FileWrites"/>
<Output TaskParameter = "OutputResources" ItemName="ManifestResourceWithNoCulture"/>
</CFResGen> <CFResGen
Condition = " '@(ResxWithCulture)' != ''"
Sources = "@(ResxWithCulture)"
UseSourcePath = "$(UseSourcePath)"
StateFile = "$(IntermediateOutputPath)$(MSBuildProjectFile).CrossCompileResGen.Cache"
OutputResources = "@(ManifestResourceWithCultureName->'$(IntermediateOutputPath)%(Identity).resources')"
>
<!-- Appending to 'FilesWritten' list lets us be part of Clean and Incremental Clean. -->
<Output TaskParameter = "FilesWritten" ItemName="FileWrites"/>
<Output TaskParameter = "OutputResources" ItemName="ManifestResourceWithCulture"/>
</CFResGen>
</Target></Project>