-
Notifications
You must be signed in to change notification settings - Fork 119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use csproj as pack input instead of nuspec #1119
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
<!-- Copied from arcade with small modifications. --> | ||
<Project> | ||
|
||
<PropertyGroup> | ||
<IncludeBuildOutput>false</IncludeBuildOutput> | ||
<IsPackable>true</IsPackable> | ||
<!-- Build Tasks should have this set per https://github.com/dotnet/arcade/blob/master/Documentation/CorePackages/Versioning.md#recommended-settings --> | ||
<AutoGenerateAssemblyVersion>true</AutoGenerateAssemblyVersion> | ||
<PackTasks Condition="'$(PackTasks)' == ''">true</PackTasks> | ||
<TargetsForTfmSpecificContentInPackage Condition="'$(PackTasks)' == 'true'">$(TargetsForTfmSpecificContentInPackage);_AddBuildOutputToPackageCore;_AddBuildOutputToPackageDesktop</TargetsForTfmSpecificContentInPackage> | ||
<DevelopmentDependency>true</DevelopmentDependency> | ||
<!-- Some target frameworks declared in the dependencies group of the nuspec and the lib/ref folder do not have exact matches in the other location. --> | ||
<NoWarn>$(NoWarn);NU5128</NoWarn> | ||
</PropertyGroup> | ||
|
||
<!-- | ||
Default to including all *.props and *.targets files | ||
from the project directory into the NuGet package root | ||
--> | ||
<ItemGroup Condition="'$(EnableDefaultItems)' != 'false'"> | ||
<None Condition="'$(EnableDefaultNoneItems)' != 'false'" | ||
Include="**/*.props;**/*.targets" | ||
Pack="true" | ||
PackagePath="%(RecursiveDir)%(Filename)%(Extension)" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<None Include="$(RepoRoot)License.txt" PackagePath="LICENSE.txt" Pack="true"/> | ||
</ItemGroup> | ||
|
||
<!-- Don't include assemblies that MSBuild ships with. --> | ||
<ItemGroup> | ||
<PackageReference Update="Microsoft.Build" Publish="false" /> | ||
<PackageReference Update="Microsoft.Build.Framework" Publish="false" /> | ||
<PackageReference Update="Microsoft.Build.Tasks.Core" Publish="false" /> | ||
<PackageReference Update="Microsoft.Build.Utilities.Core" Publish="false" /> | ||
<PackageReference Update="Microsoft.NET.StringTools" Publish="false" /> | ||
<PackageReference Update="System.Collections.Immutable" Publish="false" /> | ||
</ItemGroup> | ||
|
||
<!-- Don't include assemblies that are provided by the SDK, next to MSBuild. --> | ||
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and '$(SkipSDKInboxPublishExcludes)' != 'true'"> | ||
<PackageReference Update="Newtonsoft.Json" Publish="false" /> | ||
<PackageReference Update="NuGet.Commands" Publish="false" /> | ||
<PackageReference Update="NuGet.Common" Publish="false" /> | ||
<PackageReference Update="NuGet.Configuration" Publish="false" /> | ||
<PackageReference Update="NuGet.Frameworks" Publish="false" /> | ||
<PackageReference Update="NuGet.Packaging" Publish="false" /> | ||
<PackageReference Update="NuGet.ProjectModel" Publish="false" /> | ||
<PackageReference Update="NuGet.Versioning" Publish="false" /> | ||
</ItemGroup> | ||
|
||
<!-- Don't include assemblies that are inbox in Desktop MSBuild --> | ||
ViktorHofer marked this conversation as resolved.
Show resolved
Hide resolved
|
||
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'"> | ||
<PackageReference Update="System.Buffers" Publish="false" /> | ||
<PackageReference Update="System.Memory" Publish="false" /> | ||
<PackageReference Update="System.Numerics.Vectors" Publish="false" /> | ||
<PackageReference Update="System.Reflection.Metadata" Publish="false" /> | ||
<PackageReference Update="System.Reflection.MetadataLoadContext" Publish="false" /> | ||
<PackageReference Update="System.Runtime.CompilerServices.Unsafe" Publish="false" /> | ||
<PackageReference Update="System.Security.Cryptography.Xml" Publish="false" /> | ||
<PackageReference Update="System.Text.Encodings.Web" Publish="false" /> | ||
<PackageReference Update="System.Text.Json" Publish="false" /> | ||
<PackageReference Update="System.Threading.Tasks.Dataflow" Publish="false" /> | ||
<PackageReference Update="System.Threading.Tasks.Extensions" Publish="false" /> | ||
<PackageReference Update="System.ValueTuple" Publish="false" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<!-- | ||
Update all PackageReference items to default Publish to true. | ||
This forces the publish output to contain the dlls. | ||
--> | ||
<PackageReference Update="@(PackageReference)"> | ||
<Publish Condition="'%(PackageReference.Publish)' == ''">true</Publish> | ||
<PrivateAssets Condition="'%(PackageReference.Publish)' == 'false'">all</PrivateAssets> | ||
</PackageReference> | ||
|
||
<!-- | ||
Update all Reference items to have Pack="false" | ||
This removes the frameworkDependency nodes from the generated nuspec | ||
--> | ||
<Reference Update="@(Reference)" | ||
Pack="false" /> | ||
</ItemGroup> | ||
|
||
<!-- Desktop MSBuild compatibilty --> | ||
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'"> | ||
<PackageReference Update="System.Text.Json" Version="7.0.1" /> | ||
<PackageReference Update="Microsoft.Extensions.Logging.Console" Version="7.0.0" /> | ||
<PackageReference Update="Microsoft.Extensions.DependencyModel" Version="7.0.0" /> | ||
<PackageReference Update="System.Collections.Immutable" Version="7.0.0" /> | ||
<PackageReference Update="System.Reflection.Metadata" Version="7.0.0" /> | ||
</ItemGroup> | ||
|
||
<!-- Publish .NET assets and include them in the package under tools/net directory. --> | ||
<Target Name="_AddBuildOutputToPackageCore" DependsOnTargets="Publish" Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'"> | ||
<ItemGroup> | ||
<TfmSpecificPackageFile Include="$(PublishDir)**" | ||
PackagePath="tools/net/%(RecursiveDir)%(FileName)%(Extension)"/> | ||
</ItemGroup> | ||
</Target> | ||
|
||
<!-- Include .NET Framework build outputs in the package under tools/netframework directory. --> | ||
<Target Name="_AddBuildOutputToPackageDesktop" Condition="'$(TargetFrameworkIdentifier)' != '.NETCoreApp'"> | ||
<ItemGroup> | ||
<TfmSpecificPackageFile Include="$(OutputPath)**" PackagePath="tools/netframework/%(RecursiveDir)%(FileName)%(Extension)"/> | ||
</ItemGroup> | ||
</Target> | ||
|
||
</Project> |
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the License.txt file in the project root for more information. --> | ||
<Project> | ||
<Import Project="..\build\$(MSBuildThisFileName).props"/> | ||
</Project> |
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the License.txt file in the project root for more information. --> | ||
<Project> | ||
<PropertyGroup> | ||
<MicrosoftBuildTasksGitAssemblyFile Condition="'$(MSBuildRuntimeType)' != 'Core'">$(MSBuildThisFileDirectory)..\tools\net472\Microsoft.Build.Tasks.Git.dll</MicrosoftBuildTasksGitAssemblyFile> | ||
<MicrosoftBuildTasksGitAssemblyFile Condition="'$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)..\tools\core\Microsoft.Build.Tasks.Git.dll</MicrosoftBuildTasksGitAssemblyFile> | ||
<MicrosoftBuildTasksGitAssemblyFile Condition="'$(MSBuildRuntimeType)' != 'Core'">$(MSBuildThisFileDirectory)..\tools\netframework\Microsoft.Build.Tasks.Git.dll</MicrosoftBuildTasksGitAssemblyFile> | ||
<MicrosoftBuildTasksGitAssemblyFile Condition="'$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)..\tools\net\Microsoft.Build.Tasks.Git.dll</MicrosoftBuildTasksGitAssemblyFile> | ||
</PropertyGroup> | ||
</Project> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the License.txt file in the project root for more information. --> | ||
<Project> | ||
<Import Project="..\build\$(MSBuildThisFileName).props"/> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. buildTransitive is necessary so when a package references Microsoft.Build.Tasks.Git.nupkg, the end consumer then receives the msbuild props and targets files from it transitively. That's necessary when using NuGet's Pack task as it emits a slightly different nuspec in regards to NuGet/Home#6091 has all the details. |
||
</Project> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the License.txt file in the project root for more information. --> | ||
<Project> | ||
<Import Project="..\build\$(MSBuildThisFileName).targets"/> | ||
</Project> |
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIRC, neither NuGet restore nor the Visual Studio debugger is able to read symbols from snupkg, but NuGet.org indexes the symbols from uploaded snupkg files and provides them to debuggers via the symbol server protocol. Did nupkg.org change its symbol server so that it no longer works with VS2017? If not, what's the reason of this doc change?