Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"type": "prerelease",
"comment": "Make default template build non-dev bundle when not using debug configuration",
"packageName": "react-native-windows",
"email": "acoates@microsoft.com",
"dependentChangeType": "patch",
"date": "2020-04-14T18:43:18.289Z"
}
Original file line number Diff line number Diff line change
Expand Up @@ -174,11 +174,9 @@
<VisualStudioVersion>16.0</VisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.props" />
<PropertyGroup>
<BundleCommand>
echo WorkingDir %CD%
npx --no-install yarn run bundle
</BundleCommand>
<BundleEntryFile>dist/app/index.js</BundleEntryFile>
</PropertyGroup>
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
<Version>6.2.8</Version>
<Version>6.2.10</Version>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unrelated?

</PackageReference>
</ItemGroup>
<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,11 +198,7 @@
<Import Project="..\packages\Microsoft.UI.Xaml.2.3.191129002\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\packages\Microsoft.UI.Xaml.2.3.191129002\build\native\Microsoft.UI.Xaml.targets')" />
<Import Project="..\packages\Microsoft.Windows.CppWinRT.2.0.200316.3\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.200316.3\build\native\Microsoft.Windows.CppWinRT.targets')" />
</ImportGroup>
<PropertyGroup>
<BundleCommand>
npx --no-install yarn run bundle-cpp
</BundleCommand>
</PropertyGroup>
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.props" />
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

normally you'd put all the imported props files before any propertygroup. I think this is the same end result in this case as you don't seem to be overwriting/overriding anything in the bundle.props, but it'd be worth sticking to the layout

<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.Cpp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,13 +174,9 @@
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '16.0' ">
<VisualStudioVersion>16.0</VisualStudioVersion>
</PropertyGroup>
<PropertyGroup>
<BundleCommand>
npx --no-install yarn run bundle-cs
</BundleCommand>
</PropertyGroup>
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.props" />
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.targets" />
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here in this C# project we use Bundle.targets but in C++ we use Bundle.cpp.targets. Why the difference? Can we just use one targets file and if we need to have different behavior it can figure it out for us?

<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
Expand Down
1 change: 1 addition & 0 deletions packages/playground/windows/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,4 @@ packages/
#Files generated by the VS build
**/Generated Files/**

playground/Bundle
2 changes: 0 additions & 2 deletions packages/playground/windows/playground/Bundle/.gitignore

This file was deleted.

8 changes: 3 additions & 5 deletions packages/playground/windows/playground/Playground.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -171,13 +171,11 @@
</ItemGroup>

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.props" />
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move up before targets (really before the first PropertyGroup)

<PropertyGroup>
<BundleCommand>
npx --no-install react-native bundle --platform windows --entry-file Samples/rntester.tsx --bundle-output $(MSBuildThisFileDirectory)/Bundle/index.windows.bundle --assets-dest $(MSBuildThisFileDirectory)/Bundle
</BundleCommand>
<AppxPackageSigningEnabled>True</AppxPackageSigningEnabled>
<BundleEntryFile>Samples/rntester.tsx</BundleEntryFile>
</PropertyGroup>
<Import Project="..\..\..\..\vnext\PropertySheets\Bundle.Cpp.targets" />
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\packages\Microsoft.Windows.CppWinRT.2.0.200316.3\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.200316.3\build\native\Microsoft.Windows.CppWinRT.targets')" />
<Import Project="..\packages\Microsoft.UI.Xaml.2.3.191129002\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\packages\Microsoft.UI.Xaml.2.3.191129002\build\native\Microsoft.UI.Xaml.targets')" />
Expand Down
10 changes: 5 additions & 5 deletions vnext/PropertySheets/Bundle.Common.targets
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
Licensed under the MIT License..
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildThisFileDirectory)\Bundle.props"/>

<Target Name="MakeBundle" BeforeTargets="PrepareForBuild"
Condition="'$(UseBundle)' == 'true'">
<MakeDir Directories="$(BundleContentRoot)" Condition=" !Exists('$(BundleContentRoot') and '$(BundleContentRoot)' != '' " />
<Warning Text="BundleCommand is not defined, and you should execute 'react-native bundle' by yourself" Condition="'$(BundleCommand)' == ''" />
<Exec Condition="'$(BundleCommand)' != ''" Command="$(BundleCommand)" ConsoleToMSBuild="true" WorkingDirectory="$([System.IO.Path]::GetDirectoryName($(ProjectDir)))" />
<MakeDir Directories="$(BundleContentRoot)" Condition=" !Exists('$(BundleContentRoot)') and '$(BundleContentRoot)' != '' " />
<MakeDir Directories="$([MSBuild]::MakeRelative($(ProjectDir), $(BundleSourceMapDir)))" Condition=" !Exists('$([MSBuild]::MakeRelative($(ProjectDir), $(BundleSourceMapDir)))') and '$(BundleSourceMapDir)' != '' " />
<Message Importance="High" Text="Running [$(BundleCliCommand) --platform windows --entry-file $(BundleEntryFile) --bundle-output $([MSBuild]::NormalizePath('$(BundleOutputPath)\$(BundleAssetName)')) --assets-dest $(BundleContentRoot) --dev $(UseDevBundle) --reset-cache --sourcemap-output $([MSBuild]::MakeRelative($(BundleCommandWorkingDir), $([MSBuild]::NormalizePath('$(BundleSourceMapDir)\$(BundleAssetName).map')))) $(BundlerExtraArgs)] to build bundle file." />
<!-- Hermes will need more code here to build source maps (Call to node_modules/react-native/scripts/compose-source-maps.js) -->
<Exec Command="$(BundleCliCommand) --platform windows --entry-file $(BundleEntryFile) --bundle-output $([MSBuild]::NormalizePath('$(BundleOutputPath)\$(BundleAssetName)')) --assets-dest $(BundleContentRoot) --dev $(UseDevBundle) --reset-cache --sourcemap-output $([MSBuild]::MakeRelative($(BundleCommandWorkingDir), $([MSBuild]::NormalizePath('$(BundleSourceMapDir)\$(BundleAssetName).map')))) $(BundlerExtraArgs)" ConsoleToMSBuild="true" WorkingDirectory="$(BundleCommandWorkingDir)" />
</Target>
</Project>
2 changes: 1 addition & 1 deletion vnext/PropertySheets/Bundle.Cpp.targets
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<ItemGroup Condition="'$(UseBundle)' == 'true' and '$(BundleContent)' != '' and '$(BundleContentRoot)' != '' ">
<BundleContentToBePackaged Include="$(BundleContent)" />
<None Include="@(BundleContentToBePackaged)">
<Link>$(BundleContentRoot)\%(RecursiveDir)%(Filename)%(Extension)</Link>
<Link>$([MSBuild]::MakeRelative($(ProjectDir),'$(BundleContentRoot)\%(RecursiveDir)%(Filename)%(Extension)'))</Link>
<DeploymentContent>true</DeploymentContent>
</None>
</ItemGroup>
Expand Down
43 changes: 41 additions & 2 deletions vnext/PropertySheets/Bundle.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,49 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>

<!--
UseBundle causes the bundle to be created and included inside the application install. And defines the BUNDLE #define in code,
which causes the app to load from the bundle file rather than loading the bundle from a bundle server
-->
<UseBundle Condition=" '$(Configuration)' == 'Debug' and '$(UseBundle)' == '' ">false</UseBundle>
<UseBundle Condition=" '$(Configuration)' == 'Release' and '$(UseBundle)' == '' ">true</UseBundle>
<BundleContentRoot Condition=" '$(BundleContentRoot)' == '' ">Bundle</BundleContentRoot>
<BundleContent Condition = " '$(BundleContent)' == '' and '$(BundleContentRoot)' != '' ">$(BundleContentRoot)\**\*</BundleContent>

<!-- Root directory where bundle assets will be copied to, be sure to update BundleContent if you change this -->
<BundleContentRoot Condition=" '$(BundleContentRoot)' == '' ">$([MSBuild]::NormalizePath('$(ProjectDir)\Bundle'))</BundleContentRoot>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think ProjectDir is a VS thing whereas MSBuildProjectDirectory is the MSBuild property - are you seeing this work on the command line too?


<!-- Files included in BundleContent will be included in the application install - by default this includes the bundle file, and assets from the bundler -->
<BundleContent Condition=" '$(BundleContent)' == '' and '$(BundleContentRoot)' != '' ">$(BundleContentRoot)\**\*</BundleContent>

<!-- The name of the JS bundle assert to be placed in $(BundleOutputPath)-->
<BundleAssetName Condition="'$(BundleAssetName)' == ''">index.windows.bundle</BundleAssetName>

<!-- Where should be final JS bundle be written to -->
<BundleOutputPath Condition="'$(BundleOutputPath)' == ''">$([MSBuild]::NormalizePath('$(ProjectDir)\Bundle'))</BundleOutputPath>

<!-- Should the bundle created be a dev bundle -->
<UseDevBundle Condition="'$(UseDevBundle)' == '' and '$(Configuration)' == 'Debug'">true</UseDevBundle>
<UseDevBundle Condition="'$(UseDevBundle)' == '' and '$(Configuration)' != 'Debug'">false</UseDevBundle>

<!-- Extra arguments to pass to the bundler command -->
<BundlerExtraArgs Condition="'$(BundlerExtraArgs)' == ''"></BundlerExtraArgs>

<!-- Command to use to create a bundle -->
<BundleCliCommand Condition="'$(BundleCliCommand)' == ''">npx --no-install react-native bundle</BundleCliCommand>

<!-- This should be the app package root, this is where the bundle command will be run from -->
<BundleCommandWorkingDir Condition="'$(BundleCommandWorkingDir)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(ProjectDir), 'package.json'))</BundleCommandWorkingDir>

<!-- Entry file of the JS bundle. Defaults to use index.windows.js if it exists, otherwise index.js -->
<BundleEntryFile Condition="'$(BundleEntryFile)' == '' and Exists('$(BundleCommandWorkingDir)\index.windows.js')">index.windows.js</BundleEntryFile>
<BundleEntryFile Condition="'$(BundleEntryFile)' == ''">index.js</BundleEntryFile>

<!-- Optional config file for the bundle command (metro will use metro.config.js by default) -->
<BundleConfigFile Condition="'$(BundleConfigFile)' == ''"></BundleConfigFile>

<!-- Location where source map file for the JS bundle will be created -->
<BundleSourceMapDir Condition="'$(BundleSourceMapDir)' == ''">$(OutDir)\sourcemaps\react</BundleSourceMapDir>

</PropertyGroup>

<PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion vnext/local-cli/generator-windows/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ function copyProjectTemplateAndReplace(
[
{ from: path.join(srcRootPath, 'metro.config.js'), to: 'metro.config.js' },
{ from: path.join(srcRootPath, '_gitignore'), to: path.join(windowsDir, '.gitignore') },
{ from: path.join(srcRootPath, 'b_gitignore'), to: path.join(windowsDir, newProjectName, bundleDir, '.gitignore') },
{ from: path.join(srcRootPath, 'b_gitignore'), to: path.join(windowsDir, newProjectName, '.gitignore') },
{ from: path.join(srcRootPath, 'index.windows.bundle'), to: path.join(windowsDir, newProjectName, bundleDir, 'index.windows.bundle') },
{ from: path.join(srcPath, projDir, 'MyApp.sln'), to: path.join(windowsDir, newProjectName + '.sln') },
].forEach((mapping) => copyAndReplaceWithChangedCallback(mapping.from, destPath, mapping.to, templateVars, options.overwrite));
Expand Down
3 changes: 1 addition & 2 deletions vnext/local-cli/generator-windows/templates/b_gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
*
!.gitignore
/Bundle
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
<%=certificateThumbprint%>
<PackageCertificatePassword>password</PackageCertificatePassword>
</PropertyGroup>
<PropertyGroup>
<ReactNativeWindowsDir Condition="'$(ReactNativeWindowsDir)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'node_modules\react-native-windows\package.json'))\node_modules\react-native-windows\</ReactNativeWindowsDir>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
Expand Down Expand Up @@ -71,7 +74,7 @@
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
<Import Project="..\..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems" Label="Shared" />
<Import Project="$(ReactNativeWindowsDir)\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems" Label="Shared" />
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
Expand Down Expand Up @@ -150,13 +153,8 @@
</ItemGroup>

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

<PropertyGroup>
<BundleCommand>
npx --no-install react-native bundle --platform windows --entry-file index.js --bundle-output $(MSBuildThisFileDirectory)/Bundle/index.windows.bundle --assets-dest $(MSBuildThisFileDirectory)/Bundle
</BundleCommand>
</PropertyGroup>
<Import Project="..\..\node_modules\react-native-windows\PropertySheets\Bundle.Cpp.targets"/>
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.props"/>
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.Cpp.targets"/>

<ImportGroup Label="ExtensionTargets">
<Import Project="..\packages\Microsoft.Windows.CppWinRT.2.0.200316.3\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.200316.3\build\native\Microsoft.Windows.CppWinRT.targets')" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
<%=certificateThumbprint%>
<PackageCertificatePassword>password</PackageCertificatePassword>
</PropertyGroup>
<PropertyGroup>
<ReactNativeWindowsDir Condition="'$(ReactNativeWindowsDir)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'node_modules\react-native-windows\package.json'))\node_modules\react-native-windows\</ReactNativeWindowsDir>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
Expand Down Expand Up @@ -71,7 +74,7 @@
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
<Import Project="..\..\node_modules\react-native-windows\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems" Label="Shared" />
<Import Project="$(ReactNativeWindowsDir)\Microsoft.ReactNative.Cxx\Microsoft.ReactNative.Cxx.vcxitems" Label="Shared" />
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
Expand Down Expand Up @@ -149,19 +152,14 @@
</Text>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\node_modules\react-native-windows\Microsoft.ReactNative\Microsoft.ReactNative.vcxproj">
<ProjectReference Include="$(ReactNativeWindowsDir)\Microsoft.ReactNative\Microsoft.ReactNative.vcxproj">
<Project>{f7d32bd0-2749-483e-9a0d-1635ef7e3136}</Project>
</ProjectReference>
</ItemGroup>

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

<PropertyGroup>
<BundleCommand>
npx --no-install react-native bundle --platform windows --entry-file index.js --bundle-output $(MSBuildThisFileDirectory)/Bundle/index.windows.bundle --assets-dest $(MSBuildThisFileDirectory)/Bundle
</BundleCommand>
</PropertyGroup>
<Import Project="..\..\node_modules\react-native-windows\PropertySheets\Bundle.Cpp.targets"/>
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.props" />
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.Cpp.targets"/>

<ImportGroup Label="ExtensionTargets">
<Import Project="..\packages\Microsoft.Windows.CppWinRT.2.0.200316.3\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.200316.3\build\native\Microsoft.Windows.CppWinRT.targets')" />
Expand Down
15 changes: 7 additions & 8 deletions vnext/local-cli/generator-windows/templates/cs/proj/MyApp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
<PackageCertificatePassword>password</PackageCertificatePassword>
<AppxGeneratePrisForPortableLibrariesEnabled>false</AppxGeneratePrisForPortableLibrariesEnabled>
</PropertyGroup>
<PropertyGroup>
<ReactNativeWindowsDir Condition="'$(ReactNativeWindowsDir)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'node_modules\react-native-windows\package.json'))\node_modules\react-native-windows\</ReactNativeWindowsDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
Expand Down Expand Up @@ -151,25 +154,21 @@
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\node_modules\react-native-windows\Microsoft.ReactNative\Microsoft.ReactNative.vcxproj">
<ProjectReference Include="$(ReactNativeWindowsDir)\Microsoft.ReactNative\Microsoft.ReactNative.vcxproj">
<Project>{f7d32bd0-2749-483e-9a0d-1635ef7e3136}</Project>
<Name>Microsoft.ReactNative</Name>
</ProjectReference>
<PackageReference Include="Microsoft.UI.Xaml">
<Version>2.3.191129002</Version>
</PackageReference>
</ItemGroup>
<Import Project="..\..\node_modules\react-native-windows\Microsoft.ReactNative.SharedManaged\Microsoft.ReactNative.SharedManaged.projitems" Label="Shared" />
<Import Project="$(ReactNativeWindowsDir)\Microsoft.ReactNative.SharedManaged\Microsoft.ReactNative.SharedManaged.projitems" Label="Shared" />
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '16.0' ">
<VisualStudioVersion>16.0</VisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
<PropertyGroup>
<BundleCommand>
npx --no-install react-native bundle --platform windows --entry-file index.js --bundle-output $(MSBuildThisFileDirectory)/Bundle/index.windows.bundle --assets-dest $(MSBuildThisFileDirectory)/Bundle
</BundleCommand>
</PropertyGroup>
<Import Project="..\..\node_modules\react-native-windows\PropertySheets\Bundle.targets" />
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.props" />
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Bundle.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
Expand Down