1 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <UsingTask TaskName="Moonlight.Build.Tasks.CreateTestPage" AssemblyFile="Moonlight.Build.Tasks.dll" />
3 <UsingTask TaskName="Moonlight.Build.Tasks.GenerateMoonlightManifest" AssemblyFile="Moonlight.Build.Tasks.dll"/>
4 <UsingTask TaskName="Moonlight.Build.Tasks.GenerateXap" AssemblyFile="Moonlight.Build.Tasks.dll" />
5 <UsingTask TaskName="Moonlight.Build.Tasks.GetMoonlightFrameworkPath" AssemblyFile="Moonlight.Build.Tasks.dll"/>
6 <UsingTask TaskName="Moonlight.Build.Tasks.Respack" AssemblyFile="Moonlight.Build.Tasks.dll" />
7 <UsingTask TaskName="Moonlight.Build.Tasks.XamlG" AssemblyFile="Moonlight.Build.Tasks.dll"/>
10 <PrepareResourcesDependsOn>
13 $(PrepareResourcesDependsOn)
14 </PrepareResourcesDependsOn>
16 <PrepareForRunDependsOn>
17 GenerateMoonlightManifest;
20 $(PrepareForRunDependsOn)
21 </PrepareForRunDependsOn>
23 <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' == 'Windows_NT'">smcs.bat</CscToolExe>
24 <CscToolExe Condition="'$(CscToolExe)' == '' and '$(OS)' != 'Windows_NT'">smcs</CscToolExe>
26 <XapFileName Condition="'$(XapFileName)' == ''">$(AssemblyName).xap</XapFileName>
27 <TestPageFileName Condition="'$(TestPageFileName)' == ''">TestPage.html</TestPageFileName>
28 <SilverlightVersion Condition="'$(SilverlightVersion)' == ''">@SILVERLIGHT_VERSION@</SilverlightVersion>
29 <RuntimeVersion Condition="'$(RuntimeVersion)' == '' and '$(SilverlightVersion)' == '2.0'">2.0.31005.0</RuntimeVersion>
30 <RuntimeVersion Condition="'$(RuntimeVersion)' == '' and '$(SilverlightVersion)' == '3.0'">3.0.40624.0</RuntimeVersion>
33 {CandidateAssemblyFiles};
36 {TargetFrameworkDirectory};
39 </AssemblySearchPaths>
43 <MoonlightManifestFile Include="$(OutDir)AppManifest.xaml">
44 <TargetPath>AppManifest.xaml</TargetPath>
45 </MoonlightManifestFile>
48 <!-- Override 'GetFrameworkPaths' -->
49 <Target Name="GetFrameworkPaths">
50 <GetMoonlightFrameworkPath
51 SilverlightVersion="$(SilverlightVersion)">
52 <Output TaskParameter="FrameworkPath" PropertyName="TargetFrameworkDirectory"/>
53 <Output TaskParameter="FrameworkPath" ItemName="_FrameworkPath"/>
54 </GetMoonlightFrameworkPath>
56 <Error Text="Moonlight framework v$(SilverlightVersion) doesn't seem to be installed. Expected framework directory could not be found (@(_FrameworkPath)). To force a particular silverlight version, try: xbuild $(MSBuildProjectFile) /p:SilverlightVersion=2.0"
57 Condition="!Exists('@(_FrameworkPath)')" />
59 <CreateProperty Value="$(AssemblySearchPaths);@(_FrameworkPath->'%(Identity)-redist')"
60 Condition="Exists('@(_FrameworkPath->'%(Identity)-redist')')">
61 <Output TaskParameter="Value" PropertyName="AssemblySearchPaths"/>
65 <Target Name="Respack">
67 Resources="@(Resource);@(Page);@(ApplicationDefinition)"
68 OutputFile="$(IntermediateOutputPath)$(AssemblyName).g.resources">
69 <Output TaskParameter="OutputFile" ItemName="FileWrites"/>
70 <Output TaskParameter="OutputFile" ItemName="ManifestResourceWithNoCulture"/>
74 <Target Name="GenerateXamlG">
75 <CreateItem Include="@(Compile)" Condition="'%(Compile.Extension)' == '.xaml' and '%(Compile.Generator)' == 'MSBuild:MarkupCompilePass1'">
76 <Output TaskParameter="Include" ItemName="XamlFiles"/>
78 <CreateItem Include="@(ApplicationDefinition)" Condition="'%(Extension)' == '.xaml' and '%(Generator)' == 'MSBuild:MarkupCompilePass1'">
79 <Output TaskParameter="Include" ItemName="XamlFiles"/>
81 <CreateItem Include="@(Page)" Condition="'%(Extension)' == '.xaml' and '%(Generator)' == 'MSBuild:MarkupCompilePass1'">
82 <Output TaskParameter="Include" ItemName="XamlFiles"/>
86 Sources="@(XamlFiles)"
87 Language = "$(Language)"
88 AssemblyName = "$(AssemblyName)"
89 OutputFiles = "@(XamlFiles->'$(IntermediateOutputPath)%(Filename).g$(DefaultLanguageSourceExtension)')"
91 <Output TaskParameter="OutputFiles" ItemName="Compile"/>
92 <Output TaskParameter="OutputFiles" ItemName="FileWrites"/>
96 <Target Name="GenerateMoonlightManifest"
97 Inputs="$(MSBuildAllProjects);$(SilverlightManifestTemplate)"
98 Outputs="@(MoonlightManifestFile->'%(Identity)')">
99 <GenerateMoonlightManifest
100 ManifestFile="@(MoonlightManifestFile->'%(Identity)')"
101 EntryPointAssembly="$(AssemblyName)$(TargetExt)"
102 References="@(ReferenceCopyLocalPaths)"
103 SilverlightManifestTemplate="$(SilverlightManifestTemplate)"
104 SilverlightAppEntry="$(SilverlightAppEntry)"
105 RuntimeVersion="$(RuntimeVersion)"
107 Condition = "'$(GenerateSilverlightManifest)' == 'true'"
109 <Output TaskParameter="ManifestFile" ItemName="FileWrites"/>
110 </GenerateMoonlightManifest>
114 <GenerateXapDependsOn>
116 GenerateMoonlightManifest;
118 </GenerateXapDependsOn>
120 <Target Name="GenerateXap" DependsOnTargets="$(GenerateXapDependsOn)" Condition="'$(XapOutputs)' == 'true'"
121 Inputs="@(XapInputFiles)" Outputs="$(OutDir)$(XapFilename)">
122 <!-- Looks for %(DestinationSubdirectory) in LocalCopyReferences -->
124 InputFiles="@(XapInputFiles)"
125 LocalCopyReferences="@(ReferenceCopyLocalPaths)"
126 XapFilename="$(OutDir)$(XapFilename)"
128 <Output TaskParameter="XapFilename" ItemName="FileWrites"/>
132 <Target Name="CreateTestPage" Condition="'$(CreateTestPage)' == 'true' and '$(XapOutputs)' == 'true'">
134 XapFileName="$(XapFileName)"
135 Title="$(AssemblyName)"
136 TestPageFilename="$(OutDir)$(TestPageFilename)">
137 <Output TaskParameter="TestPageFilename" ItemName="FileWrites"/>
141 <Target Name="GetXapInputFiles">
142 <CreateItem Include="@(IntermediateAssembly)" AdditionalMetadata="TargetPath=$(AssemblyName)$(TargetExt)">
143 <Output TaskParameter="Include" ItemName="XapInputFiles"/>
146 <CreateItem Include="@(ContentWithTargetPath)">
147 <Output TaskParameter="Include" ItemName="XapInputFiles"/>
150 <CreateItem Include="@(MoonlightManifestFile)" Condition="'$(GenerateSilverlightManifest)' == 'true'">
151 <Output TaskParameter="Include" ItemName="XapInputFiles"/>
154 <CreateItem Include="$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb" AdditionalMetadata="TargetPath=$(AssemblyName)$(TargetExt).mdb"
155 Condition="Exists('$(IntermediateOutputPath)$(AssemblyName)$(TargetExt).mdb')">
156 <Output TaskParameter="Include" ItemName="XapInputFiles"/>