costura.fody 用于引用另一个 dll 的 dll

2023-11-23

我有一个我写的小exe,它使用LibGit2Sharp我正在尝试使用Costura.Fody嵌入所有内容,这样我只有一个可执行文件可以分发(实际上,还有两个配置文件,但这没关系)。

问题似乎是这样的LibGet2Sharp.dll有相当坚定的参考git2-1196807.dll,我似乎无法弄清楚如何以前者可以使用的方式嵌入后者。我已经尝试了几件事,但我认为我最好的尝试是:

所有这些 .dll 都是从解决方案复制的packages文件夹并设置为Build Action = Embedded Resource and Copy to Output Directory = Do Not Copy.

add .dll's to project explicitely

LibGit2Sharp 参考设置为Copy Local = false,我在 FodyWeavers.xml 中尝试了简单的路线:

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

更复杂的是:

<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
  <Costura>
    <Unmanaged64Assemblies>
      Costura64\LibGit2Sharp
      Costura64\git2-1196807
    </Unmanaged64Assemblies>
    <Unmanaged32Assemblies>
      Costura32\LibGit2Sharp
      Costura32\git2-1196807
    </Unmanaged32Assemblies>
  </Costura>
</Weavers>

但是,我总是收到错误,不是在打开exe时,而是在单击首先使用git库的按钮时:

...“LibGit2Sharp.Core.NativeMethods”引发异常。 ---> System.DllNotFoundException:无法加载 DLL 'git2-1196807': 找不到指定的模块。 (HRESULT 的异常: 0x8007007E)...

我所做的一些事情给了我一个错误LibGet2Sharpdll 无法访问(而不是有关的错误git2-1196807),但我想那正是我削弱福迪的时候。

如果您能提供任何建议,我将不胜感激;这让我很困惑。如果我把git2-1196807.dll文件位于部署位置“.\lib\win32\x86”和 64 位等效位置,那么它运行良好,但这违背了使用 costura.fody 的要点。

想法?


在一些帮助下解决了这个问题这个问题并且必须添加一些我自己的工作。

本质上,您需要在项目中创建一对名为 Costura32 和 Costura64 的文件夹,并将相应版本的 dll 放入其中,并将它们设置为“嵌入式资源”。然后,编织者可以在构建解决方案时将它们包含在 exe 中。

就我而言,我使用的是 LibGit2Sharp dll,它依赖于 git2-15e1193.dll,因此我将其作为解决方案的一部分:

enter image description here

对于每个 dll,我将“构建操作”设置为“嵌入式资源”:

enter image description here

最后,FodyWeavers.xml 是:

<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
  <costura IncludeDebugSymbls='false'>
    <Unmanaged32Assemblies>
      git2-15e1193
    </Unmanaged32Assemblies>
    <Unmanaged64Assemblies>
      git2-15e1193
    </Unmanaged64Assemblies>
  </costura>
</Weavers>

确保 FodyWeavers.xml 文件中的 dll 名称中不包含 .dll。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

costura.fody 用于引用另一个 dll 的 dll 的相关文章

  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • .Net应用程序设置路径

    默认情况下 Windows 应用程序设置保存在该目录中 USERPROFILE Local Settings Application Data
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框

随机推荐

  • 从 boost::asio::io_service 中删除所有处理程序而不调用它们

    我想在重用 IO service 之前删除所有处理程序 这可能吗 我正在编写涉及以下内容的单元测试asio io service 在每个测试用例之间 我想从全局中清除处理程序io service 我以为io service reset愿意
  • 为什么 Java 编译器不支持导入的继承?

    在 Java 中 导入与 外部 类相关 因为每个 外部 类都应该在单独的文件中编码 因此 人们可以声称import 类定义之前的指令与该类相关联 有点像注释 现在 如果可以继承父类的导入 这将大大减少源文件的混乱 为什么这不可能 即为什么
  • Python 文本处理:NLTK 和 pandas

    我正在寻找一种在 Python 中构建可与额外数据一起使用的术语文档矩阵的有效方法 我有一些带有一些其他属性的文本数据 我想对文本进行一些分析 并且希望能够将从文本中提取的特征 例如单个单词标记或 LDA 主题 与其他属性相关联 我的计划是
  • AspNet Identity 2.0 电子邮件和用户名重复

    我当前的 Asp Net MVC 5 项目任务电子邮件地址 for UserName 现在我想要upgradeASPNet Identity v1 0 至v2 0利用其所有新功能 see here 然而 ASPNet Identity v2
  • 查找上一页 URL

    我正在尝试查找上一页的 url 例如 用户使用以下命令从页面 A 导航到页面 BServer Redirect B aspx 页面B可以显示引用它的url 我尝试过使用 Response Write Page PreviousPage To
  • Python pandas 将行转换为存在多列的列[重复]

    这个问题在这里已经有答案了 我有一个包含多列的 DF 我想将其从行转换为列 我在堆栈溢出中看到的大多数解决方案仅处理 2 列 From DF PO ID PO Name Region Date Price 1 AA North 07 201
  • 一个线程中对非易失性成员变量的赋值是否保证在另一个线程中可见?

    考虑下面的 Java 示例 请注意 两个类成员变量都没有声明为volatile 如果我正确理解内存模型和 发生在 规则之前 Java 实现可以优化run 方法 使其永远运行 即使另一个线程调用该方法stopNow 方法 发生这种情况是因为里
  • 从数据库代码中删除样板

    看来每次我要执行数据库查询时 我都必须编写以下内容 Connection conn null Statement stmt null ResultSet rset null try conn dataSource getConnection
  • 适当的布尔随机生成器(伯努利分布)

    我很想知道是否有默认的随机布尔生成器randomC 11 库 我一直在使用 int 生成器返回0 or 1然后转换为 bool 但我正在尝试优化我的代码 并认为我可以通过从一开始就使用 bool 生成器 如果存在 来节省成本 See std
  • 砍掉每个变量名称的第一个字母[重复]

    这个问题在这里已经有答案了 我有一些数据看起来像这样 country agdp apop 1 US 100 100 2 Australia 50 50 变量名称是agdp and apop 但我希望他们是gdp and pop 我的真实数据
  • Bootstrap-vue b-table 标头中带有过滤器

    我有一个使用 bootstrap vue 生成的表 显示系统搜索的结果 结果表向用户显示记录 用户可以对它们进行排序和过滤 如何在表格标题下方添加搜索字段 th 使用 bootstrap vue 生成 th
  • 为什么我无法使用 Xamarin 在可移植类库中引用 System.Net.Sockets?

    我正在尝试在可移植类库中使用 System Net Sockets API 以便我的项目可以重用套接字连接代码 但我无法在代码中引用该名称空间 据我了解 PCL 限制您只能使用所有目标平台上可用的程序集 但我的目标是 ios Android
  • C# 与 SharpZipLib - SharpZipLib 与 Winzip 和 XP 的兼容性吗?

    我正在使用SharpZipLib自动压缩某些文件的库 问题是生成的 zip 文件不适用于 Winzip 版本 8 1 或 XP 的压缩文件夹 它确实可以与 7zip 一起使用 Winzip 给出一个错误该文件不是标准 Zip 2 0 格式
  • TabIndex 无法正常工作

    I have a windows form application On the form there are three groupboxs Each groupbox contains some controls Please see
  • 如何在模板绑定中从 Angular 4 访问 getter/setter 访问器?

    假设我有以下 getter setter 方法 get next console log this people this index this index return this people this index set next i
  • 使用 jQuery .filter() 选择 div 中的特定文本

    HTML p class greeting hello my name is kevin what s yours p jQuery p greeting filter function return this text my name i
  • JPA 不生成“删除时设置为空”FK 限制

    我有两个相关的 JPA 注释类 警报和状态 一个警报可以有一个状态 我需要的是能够删除一个状态并将空值 传播 到已删除的该状态中的警报 也就是说 我需要将外键定义为 删除时设置为空 Entity public class Alarm Id
  • PHP 速度与其他语言的比较

    我经常听说 PHP 与其他语言相比速度很慢 速度差异是否足够明显以至于我应该切换到另一种语言 如果是这样 您会推荐什么其他语言 或者有什么好的优化可以加快 PHP 的速度 这个问题经常出现 答案是 是的 它比 C Java C C 等慢 不
  • 具有 memory_order_relaxed 的存储是否有可能永远不会到达其他线程?

    假设我有一个线程A写入一个atomic int x 0 using x store 1 std memory order relaxed 如果没有任何其他同步方法 其他线程需要多长时间才能看到这一点 使用x load std memory
  • costura.fody 用于引用另一个 dll 的 dll

    我有一个我写的小exe 它使用LibGit2Sharp我正在尝试使用Costura Fody嵌入所有内容 这样我只有一个可执行文件可以分发 实际上 还有两个配置文件 但这没关系 问题似乎是这样的LibGet2Sharp dll有相当坚定的参