реквизиты и цели с PackageReference в пакете nuget - PullRequest
1 голос
/ 01 февраля 2020

Мне нравится создавать пакет NuGet с файлом .props.

Файл .props имеет следующее содержимое:

<Project>
  <ItemGroup>
    <PackageReference Include="GitVersion.Tool" Version="[5.1.1]" PrivateAssets="All" ExcludeAssets="All" />
    <PackageReference Include="dotnet-sonarscanner" Version="[4.7.1]" PrivateAssets="All" ExcludeAssets="All" />
    <PackageReference Include="ReportGenerator" Version="[4.4.6]" PrivateAssets="All" ExcludeAssets="All" />
    <PackageReference Include="NuGet.CommandLine" Version="[5.4.0]" PrivateAssets="All" ExcludeAssets="All" />
    <PackageReference Include="CycloneDX" Version="[0.9.0]" PrivateAssets="All" ExcludeAssets="All" />
    <PackageReference Include="trx2junit" Version="[1.3.0]" PrivateAssets="All" ExcludeAssets="All" />
  </ItemGroup>

  <ItemGroup>
    <NukeSpecificationFiles Include="**\*.json" Exclude="bin\**;obj\**" />
    <NukeExternalFiles Include="**\*.*.ext" Exclude="bin\**;obj\**" />
    <None Remove="*.csproj.DotSettings;*.ref.*.txt" />

    <!-- Common build related files -->
    <None Include="..\build.ps1" />
    <None Include="..\build.sh" />

    <None Include="..\.nuke" LinkBase="config" />
    <None Include="..\global.json" LinkBase="config" Condition="Exists('..\global.json')" />
    <None Include="..\nuget.config" LinkBase="config" Condition="Exists('..\nuget.config')" />
    <None Include="..\GitVersion.yml" LinkBase="config" Condition="Exists('..\GitVersion.yml')" />
    <None Include="..\CODEOWNERS" LinkBase="config" Condition="Exists('..\CODEOWNERS')" />

    <None Include="..\.teamcity\settings.kts" LinkBase="ci" Condition="Exists('..\.teamcity\settings.kts')" />
    <None Include="..\.github\workflows\*.yml" LinkBase="ci" />
    <None Include="..\azure-pipelines.yml" LinkBase="ci" Condition="Exists('..\azure-pipelines.yml')" />
    <None Include="..\Jenkinsfile" LinkBase="ci" Condition="Exists('..\Jenkinsfile')" />
    <None Include="..\appveyor.yml" LinkBase="ci" Condition="Exists('..\appveyor.yml')" />
    <None Include="..\.gitlab-ci.yml" LinkBase="ci" Condition="Exists('..\.gitlab-ci.yml')" />
    <None Include="..\.travis.yml" LinkBase="ci" Condition="Exists('..\.travis.yml')" />
  </ItemGroup>
</Project>

После упаковки и отправки натива в ленту, нюгет расходуется другими проектами, что работает.

Потребляющий проект интерпретирует .props, а также все условные файлы, а также PackageReference s.

Когда я собираюсь в проект с VS2019, тогда все работает нормально. Но когда я строю с dotnet build, файл PackageReference s из .props не добавляется.

Я проверил project.assets.json, и они отличаются. VS2019 добавляет инструменты в файл ресурсов:

...
"CycloneDX/0.9.0": {
  "type": "package"
},
"dotnet-sonarscanner/4.7.1": {
  "type": "package"
},
"GitVersion.Tool/5.1.1": {
  "type": "package"
},
...

, но сборка tnet не добавляет его.

Есть ли свойство или флаг, которые мне нужно добавить в do tnet команда восстановления? Или у вас есть идея, почему поведение отличается?

Мои цели состоят в том, чтобы проекты-потребители использовали инструменты do tnet в качестве частных активов в своих проектах.

1 Ответ

0 голосов
/ 07 марта 2020

Нет, там нет флага. Вам нужно использовать do tnet pack.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...