问题标签 [fody-costura]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
fody-costura - 在 Fody.Costura 合并文件之前执行混淆
如何在 Fody.Costura 合并文件之前执行混淆,因为合并的文件没有被混淆,使用 Fody.Costura 压缩或不使用它。
我已经为 obfuscar 下载了https://github.com/obfuscar/example.git项目示例,然后我通过 nuget 安装了 Fody 和 Fody.Costura,但是如果我使用 ILSpy 项目检查它,输出示例不会被混淆。
https://github.com/icsharpcode/ILSpy(ILSpy项目下载压缩文件并查看 dll 代码) https://github.com/G4224T/Fody-Costura-Decompress(解压 fody costura 文件)。
我的混淆配置是
在 fody costura 我试过
和
我想要使用这个项目来混淆和合并文件的任何选项,因为它是免费的,谢谢大家
.net-core - 如何在 .NET Core 或 .NET Standard 中正确设置 Fody.Costura
我无法让 Fody.Costura 在 .NET Core 2.1 或 .NET Standard 2.0 库中运行。wiki 和 open issues 似乎并没有直接回答与经典 .NET Framework 项目(.exe 或 .dll)相比必须做什么不同的问题。
出于测试目的,我创建了 4 个项目:
- 一个经典的 .NET Framework .exe 和一个 .dll
- .NET Core 2.1 .dll
- .NET 标准 2.0 .dll
我将 Fody(最新 5.1)和 Costura(最新 4.0)添加到所有项目中。
然后我为所有项目创建了完全相同的 FodyWeaver.xml。
我让所有项目都依赖于 Newtonsoft.Json(每个 Nuget 添加它并在每个使用 Newtonsoft.Json 的项目中创建一个类)。
我构建了它们并检查了输出-> Newtonsoft.Json 按预期不在输出目录中。但是,当使用 ILSpy 查看创建的 .dll 文件时,只有来自 .NET Framework 项目的二进制文件包含一个 Resources 文件夹,其中包含 Newtonsoft.Json.Dll。
根据我在 wiki 中阅读的内容,应该没有进一步的设置。这些问题并不是说不支持 .NET Core 和 Standard,即使正在进行改进等。有人知道如何让事情在这里工作吗?对我不认识的医生有任何提示吗?
.NET Core 和 Standard 项目的最终 Dll 应包含 Newtonsoft.Json.dll
更新 1
如果我在 FodyWeavers.xml 文件中显式添加 IncludeAssemblies='Newtonsoft.Json',则程序集将作为资源包含(在 .NET Core 和 Standard 中)。这是预期的行为吗?
c# - 使用 costura 嵌入报表查看器 dll 时出错
我正在 vs2019 中创建一个 winform 应用程序,通过报表查看器创建报表,它运行良好。但是,当我使用 Fody/Costura 嵌入 dll 时,报告查看器会以某种方式给出错误。
我也尝试手动嵌入 dll,但仍然出现相同的错误。
错误消息出现在报告查看器中,
本地报告处理过程中发生错误。报告“的定义无效。报告处理中发生意外错误。“Microsoft.Reporting.Services.ReportIntermediateFormat.Persistence.IntermediateFormatVersion”的类型初始化程序引发异常。路径不是合法形式。
任何帮助将不胜感激。谢谢。
c# - WPF .NET CORE 3.0 与 Costura.Fody 打包
当我将WPF
项目迁移到.NET CORE 3.0
并尝试使用打包程序集Costura
时,出现以下错误:
目标进程退出而没有引发 CoreCLR 启动事件。确保目标进程配置为使用 .NET Core。如果目标进程未在 .NET Core 上运行,则可能会出现这种情况。
程序“[7980] CryptoBot.exe”已退出,代码为 -2147450740 (0x8000808c)。
程序“[7980] CryptoBot.exe:程序跟踪”已退出,代码为 0 (0x0)。
我发现这种行为的原因是Costura.Fody
没有正确处理*.deps.json
文件,并且应该由我“相应地删除或修改”。
这种方法有两个问题:
首先:我使用database.sqlite
文件来存储数据,删除*.deps.json
会破坏对它的引用e_sqlite3.dll
,我不知道如何正确修改它(如果你想检查它,只需使用 nuget 将 sqlite 基本包添加到一个空项目):
第二:即使它确实有效,它也不会生成单个.exe
文件,而是包含依赖项的.exe
大小文件。.dll
期望的结果:我希望它能够完全按照它在 中的工作.NET Framework
,我想要一个.exe
包含在按下++后.dll
产生的所有 s 的单个。DEBUG
CTRL
SHIFT
B
或者,我也试过这个:
dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true
但它似乎根本没有打包任何东西,它只是将所有.dll
s 放在Release\netcoreapp3.0\win-x64
文件夹中。
.exe
我更喜欢通过使用Costura
而不是其他任何东西将应用程序打包到 SINGLE中。
c# - 如何在运行时从不同的 AppDomain 访问 Fody/Costura 嵌入式库
我需要为我的解决方案创建一个新的 AppDomain,以便我可以从它自己的 AppDomain 调用该方法。我的解决方案的所有依赖 .dll 文件都已使用 Fody/Costura 嵌入到 my.exe 中。我创建了一个Loader : MarshalByRefObject
类来调用我的方法,但是当我在运行时执行加载器时,我得到一个异常:
无法加载文件或程序集“my.Assembly,Version=19.1.7242.23931,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。
该代码正在我的 AppDomain.CurrentDomain.BaseDirectory 中查找 .dll 文件以通过加载程序执行我的方法,但它们不存在但嵌入在可执行文件中。有没有办法让我的新 AppDomain 了解已嵌入到我的可执行文件中的程序集,而无需从 BaseDirectory 加载它们?
我一直在寻找将其他程序集加载到我的新 AppDomain 中的方法,但还没有找到方法。我还怀疑可能有 Fody/Costura API 可以做到这一点,但还没有找到适用于这种情况的任何东西。
我希望实例化我的 Loader 类,而无需在运行时从磁盘加载 .dll。使用 Fody/Costura 嵌入式 .dll 可以做到这一点吗?
c# - 为什么 Costura.Fody 生成的库需要包含在其中的 DLL?
我们正在使用 Costura.Fody 将所有二进制文件打包到一个 DLL 中。它有一个带有单个项目的 VS 解决方案,我们将其所有依赖项打包到它。只要这个项目在解决方案中是单一的,它就可以工作。但是最近我们将一些功能移到了另一个项目中。从那时起,库无法加载System.Reflection.Assembly.LoadFrom
,引发以下错误:
为了解决一个明显的建议,OurCompany.OurProject.TheLibrary.DLL
它包含在以下资源中OurCompany.OurProject.DLL
c# - 为 c# .net 4.7.2 项目生成所有包含的 exe
我有一个引用 .Net Framework 4.7.2 的类库项目。我需要创建一个包含项目所有引用的 exe。我将无法访问需要运行此 exe 的 VM 上的任何代码或项目引用。一切都应该包含在这个exe中。
我在SO上遇到过这个问题。
costura.Fody
该问题中ILMerge
提到的解决方案是否解决了我遇到的相同问题?
(我是 .Net 和 C# 的新手)并且我有疑问,因为我不确定托管程序集与我引用的问题答案之一中提到的任何其他程序集
如果有的话,有人可以帮助解决这个问题或提出任何其他解决方案。
.net - 用 Costura Fody 封装类库
我有一个 .Net Frameworkclass library
项目,其中包括其他 3rd 方包。编译项目后,所有 dll 都在输出文件夹中。
如何将程序集嵌入到项目的 dll 中并只获取一个文件?
我尝试使用Costura-Fody,但尚未成功。
c# - 如何在 Fody/Costura 中包含 grpc_csharp_ext.x86.dll?
期待这篇文章和问题:
1) https://idmedia.no/general/include-sqlite-interop-dll-into-your-c-project/
2) https://github.com/Fody/Fody/issues/673
无法解决问题。有没有人有类似的问题?
Costura /Fody 不能包含grpc_csharp_ext.x86.dll。因为它是运行时 .dll 有关系吗?
图 1)忽略此消息检查互联网连接它只是我的后缀句。.
.
.
.
图 2)那是不包括在内的 .dll。.
.
.
.
图 3)这些是解决方案项目中的 dll,如链接1)设置为 EmbededResource 但仍然无法正常工作。.
.
.
.
这是我的 FodyWeavers.xml