【问题标题】:Error Fody: No weavers found. Add the desired weavers via their nuget package错误 Fody:没有找到织布工。通过他们的 nuget 包添加所需的编织者
【发布时间】:2019-09-26 15:34:49
【问题描述】:

我已经在我的应用程序中多次安装了 Fody,但是下面仍然出现这个错误,谁能告诉我为什么会这样?我用的是最新版的Visual Studio和最新版的Framework

【问题讨论】:

  • 您是否同时引用了 Fody 和 Costura.Fody,假设您尝试将引用的程序集嵌入为可执行资源。
  • 是的,但是即使这样还是出现了错误,编译了几次都出现了这个
  • 所有包都是最新的吗,也许更新解决方案包参考?

标签: c# visual-studio nuget fody fody-costura


【解决方案1】:

添加包时有时(不知为何)FodyWeavers.xml 无法自动添加。您需要手动将其添加到项目的根目录:

<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
  <Costura />
</Weavers>

我正在使用Fody 4.2.1Costura.Fody 3.3.3

希望对你有帮助

【讨论】:

  • .NET 项目可以通过两种方式引用 NuGet 包,packages.config (PC) 或 PackageReference (PR)。 PR does not support content files,这是 PC 项目在安装包时将文件添加到项目中的方式。也许这就是“未知”的原因。
  • @zivkan 我很确定我使用的是“PC”方式,但我不能肯定地说,那是几年前的事了。但我确实记得创建文件是一种解决方案......我很想听到它解决了这个问题。
  • 我这样做了,系统说,'找不到文件 FodyWeavers.xsd' .... 我从哪里得到那个?
  • 我不得不删除并重新添加相同的包,自动添加所需的文件(XML 和 xsd)。
【解决方案2】:

在我的例子中,FodyWeavers.xml 已经存在,因为安装了 PropertyChanged.Fody 库。如果此文件存在,只需添加&lt;Costura /&gt; 即可。

之前

<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
  <PropertyChanged />
</Weavers>

之后

<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
  <PropertyChanged />
  <Costura />
</Weavers>

【讨论】:

    【解决方案3】:

    我在使用 MSBuild 命令的 Cake 脚本上遇到了同样的问题,我解决了这个问题:

    a) 在提示上方应用 EgoistDeveloper
    b) 清理我的解决方案文件夹下所有项目的 ./bin 和 ./obj 文件夹
    c) 添加 -t:Clean,Restore,... msbuild 参数命令行

    【讨论】:

    • 只是b) 的一部分,也就是说,remove bin obj folders 就是我需要做的所有事情
    【解决方案4】:

    就我而言,我 FodyWeavers.xml 已经存在。我将文件从文件夹中剪下来并重新粘贴进去,错误就消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多