2

期待这篇文章和问题:

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

<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
  <Costura IgnoreSatelliteAssemblies='true'
           Unmanaged32Assemblies='grpc_csharp_ext'
           Unmanaged64Assemblies='grpc_csharp_ext'>
  </Costura>
</Weavers>
4

2 回答 2

0

在构建使用 gRPC 的 .NET 应用程序时,我遇到了同样的问题。我发现如果我没有在存储库的根目录中包含 global.json 文件并明确说明我要使用的 SDK 版本,则构建将只使用默认的 SDK 版本,由于某种原因,它没有t 在输出文件夹中包含 grpc_csharp_ext.x86.dll。

我建议将该文件包含在您的解决方案中,然后尝试构建它。

示例 global.json 文件:

{
  "sdk": {
    "version": "2.2.207"
  }
}

如果您不想要此文件,您还可以创建一个 powershell 脚本来创建文件、构建(或发布)解决方案,然后删除该文件:

dotnet new globaljson --sdk-version 2.2.207
try
{
    dotnet build ... (or dotnet publish ...)
}
finally
{
    Remove-Item .\global.json
}
于 2020-04-29T09:24:01.263 回答
0

问题是 - Grpc.Core 正在内部搜索 App 文件夹中的 grpc_csharp_ext dll:

https://github.com/grpc/grpc/blob/e5562a66a4e6bd1900bc9b144587d6d593720c1d/src/csharp/Grpc.Core/Internal/NativeExtension.cs#L91

将其放入 Costura 包的解决方法如下所述:

https://www.giters.com/Fody/Costura/issues/641

主要思想是在应用启动时从 Costura 包中提取这些 dll。

于 2022-01-31T12:30:40.303 回答