Они функционально эквивалентны.За одним исключением, использование атрибутов в элементе <PackageReference>
является ярлыком для наличия вложенных элементов с одинаковыми именами.Исключением является атрибут Include
, который не может быть вложенным элементом.
Таким образом, Visual Studio, MSBuild, NuGet и т. Д. Будут обрабатывать их одинаково:
<PackageReference Include="Contoso.Utility.UsefulStuff" Version="3.6.0" />
<PackageReference Include="Contoso.Utility.UsefulStuff">
<Version>3.6.0</Version>
</PackageReference>
То же самоеидет для других атрибутов, таких как «ExcludeAsset».
после использования диспетчера пакетов NuGet (в VS), я получил совсем другой XML, хотя.
Пакет NuGetМенеджер в VS не соблюдает исходный формат документа, когда он вносит изменения в ваши <PackageReference>
.Вероятно, NuGet получает интерпретированный результат файла .csproj, а не необработанный XML, поэтому он не знает, использовали ли вы атрибуты или вложенные элементы.