Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
/ corefx Public archive

Move corefx onto the .NET Core 2.0 toolset #18035

Merged
merged 11 commits into from
Apr 10, 2017
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
2 changes: 1 addition & 1 deletion BuildToolsVersion.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.0.27-prerelease-01431-02
1.0.27-prerelease-01510-01
2 changes: 1 addition & 1 deletion DotnetCLIVersion.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.0.0-preview2-1-003182
2.0.0-preview1-005724
6 changes: 3 additions & 3 deletions Tools-Override/MSBuild.runtimeconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
"runtimeOptions": {
"framework": {
"name": "Microsoft.NETCore.App",
"version": "1.1.0"
"version": "2.0.0-preview1-001913-00"
},
"configProperties": {
"Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true
"Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true
}
}
}
}
15 changes: 9 additions & 6 deletions Tools-Override/crossgen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

# Restores crossgen and runs it on all tools components.

__CoreClrVersion=1.1.0
__CoreClrVersion=2.0.0-preview1-25204-02
Copy link
Member

Choose a reason for hiding this comment

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

The duplication of all these version is going to be a maintenance nightmare we need to think about ways of eliminating them.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Technically I can pluck this version out of the string resources of libcoreclr.so. If crossgen is included with the shared framework though (which I think is the plan?) then it won't be necessary.

Copy link
Contributor

Choose a reason for hiding this comment

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

If crossgen is included with the shared framework though (which I think is the plan?).

It should now be in the the tools folder of the Microsoft.NETCore.App package (so you don't need to restore the Microsoft.NETCore.Runtime.CoreCLR package) but the current plan is to not include it as an exe in the shared framework on disk.

/cc @gkhanna79

__SharedFxVersion=2.0.0-preview1-001913-00
__MyGetFeed=https://dotnet.myget.org/F/dotnet-core/api/v3/index.json

usage()
{
Expand All @@ -20,15 +22,16 @@ restore_crossgen()

__pjDir=$__toolsDir/crossgen
mkdir -p $__pjDir
echo "{\"frameworks\":{\"netcoreapp1.1\":{\"dependencies\":{\"Microsoft.NETCore.Runtime.CoreCLR\":\"$__CoreClrVersion\", \"Microsoft.NETCore.Platforms\": \"$__CoreClrVersion\"}}},\"runtimes\":{\"$__rid\":{}}}" > "$__pjDir/project.json"
$__dotnet restore $__pjDir/project.json --packages $__packagesDir
__crossgenInPackage=$__packagesDir/runtime.$__packageRid.Microsoft.NETCore.Runtime.CoreCLR/$__CoreClrVersion/tools/crossgen
echo "<Project Sdk=\"Microsoft.NET.Sdk\"><PropertyGroup><TargetFramework>netcoreapp2.0</TargetFramework><DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences><RuntimeIdentifiers>$__packageRid</RuntimeIdentifiers></PropertyGroup><ItemGroup><PackageReference Include=\"Microsoft.NETCore.Runtime.CoreCLR\" Version=\"$__CoreClrVersion\" /><PackageReference Include=\"Microsoft.NETCore.Platforms\" Version=\"1.1.0\" /></ItemGroup></Project>" > "$__pjDir/crossgen.csproj"
Copy link
Member

Choose a reason for hiding this comment

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

Do we need this any more? Has crossgen been added to the package yet?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It wasn't when I was using an "older" version of the 2.0 CLI. Let me check again now that this works on a newer version.

$__dotnet restore $__pjDir/crossgen.csproj --packages $__packagesDir --source $__MyGetFeed
__crossgenInPackage=$__packagesDir/runtime.$__packageRid.microsoft.netcore.runtime.coreclr/$__CoreClrVersion/tools/crossgen
if [ ! -e $__crossgenInPackage ]; then
echo "The crossgen executable could not be found at "$__crossgenInPackage". Aborting crossgen.sh."
exit 1
fi
cp $__crossgenInPackage $__sharedFxDir
__crossgen=$__sharedFxDir/crossgen
chmod +x $__crossgen
}

crossgen_everything()
Expand All @@ -50,7 +53,7 @@ crossgen_everything()
crossgen_single()
{
__file=$1
$__crossgen /Platform_Assemblies_Paths $__toolsDir:$__sharedFxDir /nologo /MissingDependenciesOK $__file > /dev/null
$__crossgen /Platform_Assemblies_Paths $__sharedFxDir:$__toolsDir /nologo /MissingDependenciesOK /ReadyToRun $__file > /dev/null
if [ $? -eq 0 ]; then
__outname="${__file/.dll/.ni.dll}"
__outname="${__outname/.exe/.ni.exe}"
Expand All @@ -74,7 +77,7 @@ __scriptpath=$(cd "$(dirname "$0")"; pwd -P)
__toolsDir=$__scriptpath/../Tools
__dotnet=$__toolsDir/dotnetcli/dotnet
__packagesDir=$__scriptpath/../packages
__sharedFxDir=$__toolsDir/dotnetcli/shared/Microsoft.NETCore.App/$__CoreClrVersion/
__sharedFxDir=$__toolsDir/dotnetcli/shared/Microsoft.NETCore.App/$__SharedFxVersion/
__rid=$($__dotnet --info | sed -n -e 's/^.*RID:[[:space:]]*//p')

if [[ $__rid == *"osx"* ]]; then
Expand Down
20 changes: 13 additions & 7 deletions Tools-Override/packageresolve.targets
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@
<UsingTask TaskName="IsRestoreRequired" AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll"/>

<PropertyGroup>
<ProjectJson Condition="'$(ProjectJson)'=='' and Exists('$(MSBuildProjectDirectory)/project.json')">$(MSBuildProjectDirectory)/project.json</ProjectJson>
<ProjectLockJson Condition="Exists('$(ProjectJson)') and '$(ProjectLockJson)'==''">$(MSBuildProjectDirectory)/project.lock.json</ProjectLockJson>
<ProjectJson Condition="'$(ProjectJson)' == '' and '$(ContainsPackageReferences)' == 'true'">$(MSBuildProjectFullPath)</ProjectJson>
<RestoreOutputPath Condition="'$(RestoreOutputPath)' == ''">$(MSBuildProjectDirectory)</RestoreOutputPath>
<RestoreOutputPath Condition="'$(ContainsPackageReferences)' != 'true' And '$(ProjectJson)' != ''">$([System.IO.Path]::GetDirectoryName('$(ProjectJson)'))/obj</RestoreOutputPath>
<!-- SDK targets need this to be set in addition to RestoreOutputPath. See https://github.com/dotnet/sdk/issues/1057 -->
<ProjectAssetsFile>$(RestoreOutputPath)/project.assets.json</ProjectAssetsFile>
<ResolveNugetProjectFile Condition="'$(ResolveNugetProjectFile)' == ''">$(MSBuildProjectFullPath)</ResolveNugetProjectFile>
<RestorePackages Condition="'$(RestorePackages)'!='false' and Exists('$(ProjectJson)') and '$(DesignTimeBuild)' != 'true'">true</RestorePackages>
<PrereleaseResolveNuGetPackages Condition="'$(PrereleaseResolveNuGetPackages)'!='false' and Exists('$(ProjectJson)')">true</PrereleaseResolveNuGetPackages>
Expand All @@ -32,16 +35,19 @@
<Output TaskParameter="RestoreRequired" PropertyName="RestoreRequired" />
</IsRestoreRequired>

<Exec Condition="Exists('$(ProjectJson)') AND '$(RestoreRequired)' == 'true'" Command="$(DnuRestoreCommand) &quot;$(ProjectJson)&quot;" StandardOutputImportance="Low" CustomErrorRegularExpression="^Unable to locate .*" />
<PropertyGroup>
<_DnuRestoreCommandRidPortion Condition="'$(RidSpecificAssets)' == 'true'">-r $(NuGetRuntimeIdentifier)</_DnuRestoreCommandRidPortion>
<_DnuRestoreCommandFull>$(DnuRestoreCommand) $(ProjectJson) /p:TargetGroup=$(TargetGroup) /p:ConfigurationGroup=$(ConfigurationGroup) /p:ArchGroup=$(ArchGroup) /p:OSGroup=$(OSGroup) /p:TargetFramework=$(NuGetTargetMonikerShort) $(_DnuRestoreCommandRidPortion)</_DnuRestoreCommandFull>
</PropertyGroup>
<Exec Condition="Exists('$(ProjectJson)') AND '$(RestoreRequired)' == 'true'" Command="$(_DnuRestoreCommandFull)" StandardOutputImportance="Low" CustomErrorRegularExpression="^Unable to locate .*" />

<!-- if lock file exists be sure to update timestamp otherwise we could get in a state of aways calling restore but the lock file not being updated -->
<Touch Condition="Exists('$(ProjectLockJson)') AND '$(RestoreRequired)' == 'true'" Files="$(ProjectLockJson)" />
<Touch Condition="Exists('$(ProjectAssetsFile)') AND '$(RestoreRequired)' == 'true'" Files="$(ProjectAssetsFile)" />
</Target>

<ItemGroup Condition="'$(ResolvePackages)'=='true' or '$(PrereleaseResolveNuGetPackages)'=='true'">
<CustomAdditionalCompileInputs Condition="Exists('$(ProjectJson)')" Include="$(ProjectJson)" />
</ItemGroup>

<PropertyGroup>
<ResolveAssemblyReferencesDependsOn>
$(ResolveAssemblyReferencesDependsOn);
Expand Down Expand Up @@ -77,13 +83,13 @@
Condition="'$(PrereleaseResolveNuGetPackages)'=='true'"
DependsOnTargets="$(ResolveNugetPackagesDependsOn)">

<PrereleaseResolveNuGetPackageAssets Condition="Exists('$(ProjectLockJson)')"
<PrereleaseResolveNuGetPackageAssets Condition="Exists('$(ProjectAssetsFile)')"
AllowFallbackOnTargetSelection="true"
IncludeFrameworkReferences="false"
NuGetPackagesDirectory="$(PackagesDir)"
RuntimeIdentifier="$(NuGetRuntimeIdentifier)"
ProjectLanguage="$(Language)"
ProjectLockFile="$(ProjectLockJson)"
ProjectLockFile="$(ProjectAssetsFile)"
TargetMonikers="$(NuGetTargetMoniker)">
<Output TaskParameter="ResolvedAnalyzers" ItemName="Analyzer" />
<Output TaskParameter="ResolvedReferences" ItemName="_ReferenceFromPackage" />
Expand Down
2 changes: 2 additions & 0 deletions Tools-Override/tests.targets
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,7 @@
<TestCommandLines Condition="'$(TargetOS)'=='Windows_NT'" Include="call $(TestCommandLine)"/>

<TestCommandLines Condition="'$(TargetOS)'!='Windows_NT' and '$(TestGCStressLevel)' != ''" Include="export COMPlus_GCStress=$(TestGCStressLevel)"/>
<TestCommandLines Condition="'$(TargetOS)'!='Windows_NT'" Include="chmod +x $(TestProgram)"/>
<TestCommandLines Condition="'$(TargetOS)'!='Windows_NT'" Include="$(TestCommandLine)"/>
</ItemGroup>

Expand All @@ -299,6 +300,7 @@
RunnerScriptTemplate="$(MSBuildThisFileDirectory)/$(RunnerTemplateName)"
ScriptOutputPath ="$(OutputPathForScriptGenerator)"
/>
<Exec Condition="'$(TargetOS)'!='Windows_NT'" Command="chmod +x $(OutputPathForScriptGenerator)" />
</Target>

<Target Name="RunTestsForProject"
Expand Down
24 changes: 0 additions & 24 deletions buildpipeline/pipeline.json
Original file line number Diff line number Diff line change
Expand Up @@ -118,18 +118,6 @@
"Type": "build/product/",
"ConfigurationGroup": "Release"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Linux",
"Parameters": {
"PB_DockerTag": "alpine_prereqs",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=Release /p:\"EnableCloudTest=false\" /p:\"TestProduct=corefx /p:\"TimeoutInSeconds=1200\" /p:\"TargetOS=Linux\""
},
"ReportingParameters": {
"OperatingSystem": "Alpine 3.4.3",
"Type": "build/product/",
"ConfigurationGroup": "Release"
}
}
]
},
Expand Down Expand Up @@ -628,18 +616,6 @@
"Type": "build/product/",
"ConfigurationGroup": "Debug"
}
},
{
"Name": "DotNet-CoreFx-Trusted-Linux",
"Parameters": {
"PB_DockerTag": "alpine_prereqs",
"PB_CreateHelixArguments": "/p:ArchGroup=x64 /p:ConfigurationGroup=Debug /p:\"EnableCloudTest=false\" /p:\"TestProduct=corefx /p:\"TimeoutInSeconds=1200\" /p:\"TargetOS=Linux\""
},
"ReportingParameters": {
"OperatingSystem": "Alpine 3.4.3",
"Type": "build/product/",
"ConfigurationGroup": "Debug"
}
}
]
},
Expand Down
9 changes: 2 additions & 7 deletions dependencies.props
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
<AppXRunnerVersion>1.0.3-prerelease-00921-01</AppXRunnerVersion>
<XunitPerfAnalysisPackageVersion>1.0.0-alpha-build0049</XunitPerfAnalysisPackageVersion>
<TraceEventPackageVersion>1.0.0-alpha-experimental</TraceEventPackageVersion>
<XunitNetcoreExtensionsVersion>1.0.1-prerelease-01401-04</XunitNetcoreExtensionsVersion>
</PropertyGroup>

<!-- Package dependency verification/auto-upgrade configuration. -->
Expand Down Expand Up @@ -151,7 +152,7 @@
</StaticDependency>

<StaticDependency Include="Microsoft.xunit.netcore.extensions;Microsoft.DotNet.BuildTools.TestSuite">
<Version>1.0.1-prerelease-01401-04</Version>
<Version>$(XunitNetcoreExtensionsVersion)</Version>
</StaticDependency>

<PerformancePackDependency Include="xunit.performance.core" />
Expand All @@ -171,11 +172,5 @@
<PackageId>microsoft.xunit.runner.uwp</PackageId>
<Version>$(AppXRunnerVersion)</Version>
</DependencyBuildInfo>

<!-- project.json files to update -->
<ProjectJsonFiles Include="$(MSBuildThisFileDirectory)external\**\project.json" />
Copy link
Member

Choose a reason for hiding this comment

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

I assume that msbuild /t:UpdateDependencies will still work?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yep, it does. It will only update dependencies.props now, but the properties defined in there are used in the depproj files.

<ProjectJsonFiles Include="$(MSBuildThisFileDirectory)external\**\optional.json" />
<ProjectJsonFiles Include="$(MSBuildThisFileDirectory)external\**\project.json.template" />

</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion dir.props
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
<DnuRestoreCommand>$(DnuRestoreCommand) restore</DnuRestoreCommand>
<DnuRestoreCommand Condition="'$(ParallelRestore)'=='true'">$(DnuRestoreCommand) --parallel</DnuRestoreCommand>
<DnuRestoreCommand Condition="'$(UseNuGetHttpCache)'!='true'">$(DnuRestoreCommand) --no-cache</DnuRestoreCommand>
<DnuRestoreCommand>$(DnuRestoreCommand) --packages "$(PackagesDir.TrimEnd('/\'.ToCharArray()))" $(DnuRestoreSource)</DnuRestoreCommand>
<DnuRestoreCommand>$(DnuRestoreCommand) --packages "$(PackagesDir.TrimEnd('/').TrimEnd('\'))" $(DnuRestoreSource)</DnuRestoreCommand>
Copy link
Member

Choose a reason for hiding this comment

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

mm not sure I understood this change.

Copy link
Contributor Author

@mellinoe mellinoe Apr 6, 2017

Choose a reason for hiding this comment

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

For some reason, MSBuild did not want to call the TrimEnd overload we were using before. We did add a parameterless overload to this function in 2.0. I couldn't figure out the syntax to get it right, so I just made two calls to TrimEnd instead.

Copy link
Member

Choose a reason for hiding this comment

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

There was some breaking changes in MSBuild with netcoreapp2.0 caused by the new overload. See dotnet/msbuild#1634.

/cc @rainersigwald @AndyGerlicher - in case they want to know about this change for netcoreapp2.0. It feels like a bug.


In reply to: 110289282 [](ancestors = 110289282)

Copy link
Member

Choose a reason for hiding this comment

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

Filed dotnet/msbuild#1966 to take a look at this

<DnuRestoreCommand Condition="'$(LockDependencies)' == 'true'">$(DnuRestoreCommand) --lock</DnuRestoreCommand>
<DnuRestoreCommand Condition="'$(NuGetConfigPath)'!=''">$(DnuRestoreCommand) --configfile $(NuGetConfigPath)</DnuRestoreCommand>
</PropertyGroup>
Expand Down
11 changes: 11 additions & 0 deletions external/ILLink/ILLink.depproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,20 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
<NuGetTargetMoniker>.NETCoreApp,Version=v1.1</NuGetTargetMoniker>
<NuGetTargetMonikerShort>netcoreapp1.1</NuGetTargetMonikerShort>
<OutputPath>$(ToolsDir)ILLink</OutputPath>
<IsRuntimeAssembly>false</IsRuntimeAssembly>
<RidSpecificAssets>true</RidSpecificAssets>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.ILLink">
<Version>0.1.8-preview</Version>
<IncludeAssets>Analyzers;Build;ContentFiles;Native;Runtime</IncludeAssets>
</PackageReference>
<Content Include="illink.runtimeconfig.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
<Target Name="IncludeAllFiles"
AfterTargets="ResolveNuGetPackages">
Expand Down
9 changes: 9 additions & 0 deletions external/ILLink/illink.runtimeconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "netcoreapp1.1",
Copy link
Member

Choose a reason for hiding this comment

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

What is the tfm option? I'm not sure I've seen that before.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not sure. It is in the runtimeconfig.json file included in the ILLink nuget package, and this file is copy-pasted from there. I just updated the Microsoft.NETCore.App version below.

Copy link
Member

Choose a reason for hiding this comment

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

The new tooling puts this "tfm" in the runtimeconfig. This value is used by the host to do "shared runtime store" probing. See https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/DotNetCore-SharedPackageStore.md for more info.


In reply to: 110770450 [](ancestors = 110770450)

"framework": {
"name": "Microsoft.NETCore.App",
"version": "2.0.0-preview1-001913-00"
}
}
}
14 changes: 0 additions & 14 deletions external/ILLink/project.json.template

This file was deleted.

3 changes: 2 additions & 1 deletion external/dir.proj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
<Project Include="netfx/netfx.depproj" />
<Project Include="runtime/runtime.depproj" />
<Project Include="test-runtime/XUnit.Runtime.depproj" />
<Project Include="harvestPackages/harvestPackages.depproj" />
<Project Include="harvestPackages/harvestPackages.netstandard1.6.depproj" />
<Project Include="harvestPackages/harvestPackages.uap10.0.depproj" />
<Project Include="portable\portable.depproj" />
<Project Include="uapaotredist/uapaotredist.depproj" />
<Project Include="ilasm/ilasm.depproj" />
Expand Down
3 changes: 3 additions & 0 deletions external/dir.props
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,8 @@
<RuntimeOS Condition="'$(PortableBuild)' == 'true' and '$(OSGroup)' == 'Linux'">linux</RuntimeOS>
-->
<NugetRuntimeIdentifier>$(RuntimeOS)-$(ArchGroup)</NugetRuntimeIdentifier>
<ContainsPackageReferences>true</ContainsPackageReferences>
<!-- We need configuration-specific assets files. -->
<RestoreOutputPath>$(IntermediateOutputPath)</RestoreOutputPath>
</PropertyGroup>
</Project>
22 changes: 0 additions & 22 deletions external/dir.targets
Original file line number Diff line number Diff line change
@@ -1,33 +1,11 @@
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectJsonTemplate Condition="'$(ProjectJsonTemplate)' == ''">$(MSBuildThisProjectDirectory)project.json.template</ProjectJsonTemplate>
<ProjectJson Condition="Exists('$(ProjectJsonTemplate)')">$(IntermediateOutputPath)project.json</ProjectJson>
<ProjectLockJson Condition="Exists('$(ProjectJsonTemplate)')">$(IntermediateOutputPath)project.lock.json</ProjectLockJson>
</PropertyGroup>

<Import Project="..\dir.targets" />

<PropertyGroup>
<RestorePackages>true</RestorePackages>
Copy link
Member

Choose a reason for hiding this comment

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

Are these properties still needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I believe so... RestorePackages defaults to false and is only set in this folder.

Copy link
Member

Choose a reason for hiding this comment

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

I guess it won't be needed once we stop doing the restore ourselves and start using the nuget targets for restore.

<PrereleaseResolveNuGetPackages>true</PrereleaseResolveNuGetPackages>
</PropertyGroup>

<Target
Name="GenerateProjectJsonFromTemplates"
BeforeTargets="RestorePackages"
Inputs="$(ProjectJsonTemplate)"
Outputs="$(ProjectJson)"
Condition="Exists('$(ProjectJsonTemplate)')"
>
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('$(ProjectJson)'))" />
<!-- Update project.json template -->
<WriteLinesToFile
File="$(ProjectJson)"
Lines="$([System.IO.File]::ReadAllText('$(ProjectJsonTemplate)').Replace('{RID}', $(NuGetRuntimeIdentifier)).Replace('{TFM}', $(NuGetTargetMoniker)).Replace('{PackageId}', $(TargetingPackNugetPackageId)))"
Overwrite="true"
/>
</Target>

<!-- Override build and GetTargetPath to return all items deployed -->
<Target Name="Build"
Condition=" '$(_InvalidConfigurationWarning)' != 'true' "
Expand Down
Loading