如何通过 NuGet 正确删除 PropertyChanged.Fody

How to properly remove PropertyChanged.Fody via NuGet

我打算在我的一个项目中使用 Fody.PropertyChanged,它是通过 NuGet 正确添加的:

Install-Package PropertyChanged.Fody

我意识到,它在错误的项目中,所以我使用卸载命令:

Uninstall-Package PropertyChanged.Fody

之后我将它添加到正确的项目中。

现在,当我尝试构建我的解决方案时,我在 初始项目 中收到以下错误,不应该安装 Fody:

Fody: You don't seem to have configured any weavers. Try adding a Fody nuget package to your project. Have a look here http://nuget.org/packages?q=fody for the list of available packages.

项目中没有对 Fody 的引用,我从 packages.config 文件中删除了 Fody 引用,XML 文件中没有。

我还应该做什么?

我猜你最近更新了 Fody 库?当它要求替换现有的 "FodyWeavers.xml" 时,您可能已经允许它这样做了。如果您有项目的备份,请从中获取 "FodyWeavers.xml" 并将其替换为新的。清理并重建解决方案。

你还需要

Uninstall-Package Fody

这并不是专门针对您不希望 Fody 加入的项目,但有时 VS 会给出 vague/odd 错误。

我在第一次安装 PropertyChanged.Fody 后遇到了类似的问题,并且在我包含并引用它后无法立即构建...我想知道这些细节是否来自我的经验可能会有所帮助(确保这些点存在于您想要 lib 的项目中)。

  1. 请确保您的 packages.config 中有以下引用,从您 运行 Install-Package PropertyChanged.Fody:
<package id="Fody" version="1.24.0" targetFramework="net45" developmentDependency="true" /> 
<package id="PropertyChanged.Fody" version="1.49.0" targetFramework="net45" developmentDependency="true" />
  1. 确保在您要使用它的项目的顶层有 FodyWeavers.xml

  2. FodyWeavers.xml 应该是这样的(我不得不添加 <PropertyChanged /> 到我的)

<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
  <PropertyChanged />
</Weavers>

删除 "FodyWeavers.xml" 并使用 NotePad 或 notePad++ 打开项目文件并删除以下行

<Target Name="EnsureNuGetPackageBuildImports"  BeforeTargets="PrepareForBuild">
<Import Project="..\packages\Fody.1.29.2\build\portable-net+sl+win+wpa+wp\Fody.targets" Condition="Exists('..\packages\Fody.1.29.2\build\portable-net+sl+win+wpa+wp\Fody.targets')" />