#.net-core #nuget #nuget-package #fody-propertychanged
#.net-core #нагет #nuget-package #fody-propertychanged
Вопрос:
Когда я создаю свой проект .NET Core (NETStandard v2.0), я получаю следующее предупреждение:
ViewModels: [FodyPackageReference] Fody: ссылка на пакет для изменения свойств.Fody не содержит PrivateAssets=’Все’
Предупреждение относится к свойству, измененному.Пакет Fody NuGet.
Хотя предупреждение не останавливает сборку, я хотел бы устранить это предупреждение. Однако я не понимаю, что он пытается сообщить.
Ответ №1:
PrivateAssets
это тег метаданных, используемый для управления активами зависимостей.
Возможно, вы используете зависимость исключительно как средство разработки и, возможно, не захотите предоставлять ее проектам, которые будут использовать ваш пакет. В этом сценарии вы можете использовать метаданные PrivateAssets для управления этим поведением.
В вашем случае, если вы не хотите предоставлять PropertyChanged.Fody
доступ потребителю (т. Е. Вы Выпускаете библиотеку), Установка PrivateAssets
All
в вашем файле .csproj удалит предупреждение.
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<PackageReference Include="PropertyChanged.Fody" Version="3.3.1" PrivateAssets="All" />
</ItemGroup>
</Project>
Комментарии:
1. Большое спасибо, это здорово и помогло. Я обнаружил, что иногда обозначения в .csproj выглядят так:
<PackageReference Include="PropertyChanged.Fody"> <Version>3.3.1</Version> <PrivateAssets>All</PrivateAssets> </PackageReference>
2. Это было изменено. Пожалуйста, обновите комментарий следующим образом:
<PackageReference Include="Costura.Fody" Version="5.3.0" PrivateAssets="All"/>
.3. @rios0rios0 Что изменилось? Кроме того, почему важно, что вы добавляете в атрибуты Include или Version ? Этот вопрос и ответ касаются атрибута PrivateAssets, а не конкретной зависимости.
4. @RyanPayne пожалуйста, попробуйте сделать то, что вы сказали, в новой версии пакетов. И вы получите сообщение об ошибке. Нет свойства с именем «PropertyChanged. Fody». Его больше не существует. Свойство «PrivateAssets» работает только в объявлении пакета, как я уже сказал.
5. @rios0rios0 Костура. Fody — это полностью отдельный пакет от PropertyChanged. Fody (см. github.com/Fody/Costura ). Я только что попробовал, и приведенный выше код по-прежнему работает нормально.