我已使用 nuget 包将 costura.fody 安装到我的项目中。我已将 FodyWeavers.xml 文件更新为:
<Costura
Unmanaged32Assemblies='dllname'
Unmanaged64Assemblies='dllname' />
当我重建它并尝试在没有 dll 的单独 PC 上运行 exe 时,它不起作用。我错过了什么吗?我还需要添加什么吗?我还尝试过以下操作:
<IncludeAssemblies>
dllname
</IncludeAssemblies>
感谢您提前的帮助。
我想添加一个元素,当非托管 dll 不正式属于解决方案/项目时,该元素对于它们很重要。
@Adds 正确使用:
<Costura
Unmanaged32Assemblies='dllname'
Unmanaged64Assemblies='dllname' />
@kdiddymcnasty 谨慎对待双重包含是正确的(但请注意,IncludeAssemblies
属性不同于Unmanaged##Assemblies
属性)。
然而,还有一个额外的部分,显示在这一页 https://idmedia.no/general/including-sqlite-interop-dll-into-your-c-project/。本质上,您需要在项目中创建一对文件夹,名为Costura32
and Costura64
并将适当版本的 dll 放在那里,并将它们设置为“嵌入式资源”。然后,编织者可以在构建解决方案时将它们包含在 exe 中。
就我而言,我使用的是 LibGit2Sharp dll,它依赖于 git2-15e1193.dll,因此我将其作为解决方案的一部分:
对于每个 dll,我都有Build Action
set to Embedded Resource
:
最后,FodyWeavers.xml 是:
<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
<costura IncludeDebugSymbls='false'>
<Unmanaged32Assemblies>
git2-15e1193
</Unmanaged32Assemblies>
<Unmanaged64Assemblies>
git2-15e1193
</Unmanaged64Assemblies>
</costura>
</Weavers>
确保离开.dll
关闭 FodyWeavers.xml 文件中的 dll 名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)