问题标签 [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.

0 投票
1 回答
490 浏览

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 我试过

我想要使​​用这个项目来混淆和合并文件的任何选项,因为它是免费的,谢谢大家

0 投票
1 回答
3866 浏览

.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)相比必须做什么不同的问题。

  1. 出于测试目的,我创建了 4 个项目:

    • 一个经典的 .NET Framework .exe 和一个 .dll
    • .NET Core 2.1 .dll
    • .NET 标准 2.0 .dll
  2. 我将 Fody(最新 5.1)和 Costura(最新 4.0)添加到所有项目中。

  3. 然后我为所有项目创建了完全相同的 FodyWeaver.xml。

  4. 我让所有项目都依赖于 Newtonsoft.Json(每个 Nuget 添加它并在每个使用 Newtonsoft.Json 的项目中创建一个类)。

  5. 我构建了它们并检查了输出-> 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 中)。这是预期的行为吗?

0 投票
1 回答
439 浏览

c# - 使用 costura 嵌入报表查看器 dll 时出错

我正在 vs2019 中创建一个 winform 应用程序,通过报表查看器创建报表,它运行良好。但是,当我使用 Fody/Costura 嵌入 dll 时,报告查看器会以某种方式给出错误。

我也尝试手动嵌入 dll,但仍然出现相同的错误。

错误消息出现在报告查看器中,

本地报告处理过程中发生错误。报告“的定义无效。报告处理中发生意外错误。“Microsoft.Reporting.Services.ReportIntermediateFormat.Persistence.IntermediateFormatVersion”的类型初始化程序引发异常。路径不是合法形式。

任何帮助将不胜感激。谢谢。

0 投票
1 回答
114 浏览

c# - 为什么 Fody weaving 无法编织其他项目?

很抱歉在这里使用了图片,但看起来很合适。

我有一个简单的方法拦截器在第一个图像中工作,但是当我将拦截器移动到我希望它存在的库的一部分时(为了可重用性)它只是停止编织。

福迪编织工作 福迪编织工作

福迪编织不工作 福迪编织不工作

0 投票
0 回答
1012 浏览

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 的单个。DEBUGCTRLSHIFTB

或者,我也试过这个: dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true 但它似乎根本没有打包任何东西,它只是将所有.dlls 放在Release\netcoreapp3.0\win-x64文件夹中。

.exe我更喜欢通过使用Costura而不是其他任何东西将应用程序打包到 SINGLE中。

0 投票
1 回答
882 浏览

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 可以做到这一点吗?

0 投票
0 回答
463 浏览

c# - 为什么 Costura.Fody 生成的库需要包含在其中的 DLL?

我们正在使用 Costura.Fody 将所有二进制文件打包到一个 DLL 中。它有一个带有单个项目的 VS 解决方案,我们将其所有依赖项打包到它。只要这个项目在解决方案中是单一的,它就可以工作。但是最近我们将一些功能移到了另一个项目中。从那时起,库无法加载System.Reflection.Assembly.LoadFrom,引发以下错误:

为了解决一个明显的建议,OurCompany.OurProject.TheLibrary.DLL 包含在以下资源中OurCompany.OurProject.DLL

0 投票
1 回答
644 浏览

c# - 为 c# .net 4.7.2 项目生成所有包含的 exe

我有一个引用 .Net Framework 4.7.2 的类库项目。我需要创建一个包含项目所有引用的 exe。我将无法访问需要运行此 exe 的 VM 上的任何代码或项目引用。一切都应该包含在这个exe中。

我在SO上遇到过这个问题。

costura.Fody该问题中ILMerge提到的解决方案是否解决了我遇到的相同问题?

(我是 .Net 和 C# 的新手)并且我有疑问,因为我不确定托管程序集与我引用的问题答案之一中提到的任何其他程序集

如果有的话,有人可以帮助解决这个问题或提出任何其他解决方案。

0 投票
0 回答
61 浏览

.net - 用 Costura Fody 封装类库

我有一个 .Net Frameworkclass library项目,其中包括其他 3rd 方包。编译项目后,所有 dll 都在输出文件夹中。

如何将程序集嵌入到项目的 dll 中并只获取一个文件

我尝试使用Costura-Fody,但尚未成功。

0 投票
2 回答
386 浏览

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)忽略此消息检查互联网连接它只是我的后缀句。.

.

.

.

那是不包括在内的.dll。

图 2)那是不包括在内的 .dll。.

.

.

.

这些是解决方案项目中的 dll,如链接 1)设置为 EmbededResource 但仍然无法正常工作。

图 3)这些是解决方案项目中的 dll,如链接1)设置为 EmbededResource 但仍然无法正常工作。.

.

.

.

这是我的 FodyWeavers.xml