Fody/Costura: 可嵌入资源的.NET程序集
CosturaEmbed references as resources项目地址:https://gitcode.com/gh_mirrors/co/Costura
项目介绍
Fody/Costura 是一个.NET构建工具,它可以将你的程序集依赖项直接嵌入到主程序集中,以减少部署时的文件数量。通过这种方式,你可以避免因为丢失DLL而引发的运行时错误,并简化应用程序的打包过程。
项目快速启动
安装Costura.Fody NuGet包
在你的Visual Studio项目中,通过NuGet包管理器安装 Costura.Fody
包。或者,在你的项目根目录下的 .csproj
文件中添加以下XML:
<Project>
...
<ItemGroup>
<PackageReference Include="Costura.Fody" Version="最新版本号" PrivateAssets="all" />
</ItemGroup>
...
</Project>
记得替换最新版本号
为实际的包版本。
配置Costura.Fody
在同一个 .csproj
文件中,添加Costura配置节:
<PropertyGroup>
...
<EnableFody>true</EnableFody>
...
</PropertyGroup>
<ItemGroup>
<FodyWeavers Include="Costura">
<Properties>
<!-- 这里可以添加自定义配置 -->
</Properties>
</FodyWeavers>
</ItemGroup>
嵌入资源
默认情况下,所有引用的托管程序集会被嵌入。如果你想要排除某些程序集,可以在.csproj
中添加以下配置:
<FodyWeavers>
<Costura ExcludedAssemblies="要排除的程序集名1;要排除的程序集名2"/>
</FodyWeavers>
应用案例和最佳实践
- 简化部署:由于所有依赖都内嵌,你只需要部署一个exe文件即可。
- 自动加载原生库:将原生库(如
dll
或so
)放入costura32
或costura64
文件夹并设置为嵌入资源,Costura会自动处理加载。 - 单元测试:对于需要运行时发现的单元测试,可能需要保留dll。配置
Costura.CreateTemporaryAssemblies=true
可以创建临时副本。 - 初始化控制:若模块初始化不起作用,使用
CosturaUtility.Initialize()
手动初始化Costura系统。
典型生态项目
Costura.Fody广泛用于各种场景,包括但不限于:
- 自动化脚本和工具
- 独立运行的应用程序,无需外部依赖
- 需要轻量级部署解决方案的游戏引擎组件
- 小型桌面应用,希望保持简洁的用户界面
这个简短教程提供了一个快速入门Costura.Fody的方法。更多高级用法和详细配置选项,建议查看项目GitHub页面上的完整文档。祝你在使用Costura的过程中一切顺利!
CosturaEmbed references as resources项目地址:https://gitcode.com/gh_mirrors/co/Costura