我开发了一个.NET Core应用程序。 该解决方案包括来自库的netstandard1.6和控制台应用程序netcoreapp1.1。 这两个项目都使用SqlClient。 如果我在Windows上发布并运行,那么一切都会顺利进行。 如果我在Linux上运行,那么应用程序崩溃并发生错误:
未处理的异常:System.Data.SqlClient.SqlException:A 建立时发生与网络相关或特定于实例的错误 与SQL Server的连接。服务器未找到或未找到 无障碍。验证实例名称是否正确以及SQL 服务器配置为允许远程连接。 (提供者:TCP 提供者,错误:35 - 捕获了内部异常)---> System.AggregateException:发生一个或多个错误。 (类型 'System.Runtime.Versioning.BinaryCompatibility'的初始化程序投掷 一个例外。)---> System.TypeInitializationException:类型 'System.Runtime.Versioning.BinaryCompatibility'的初始化程序投掷 一个例外。 ---> System.IO.FileLoadException:无法加载文件 或程序集'System.Runtime.InteropServices ,版本= 4.1.1.0, Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。位于 程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
PS:事实上,服务器可用,您可以从刚刚在Linux上创建的应用程序连接到它。
dotnet --info
Product Information:
Version: 1.0.4
Commit SHA-1 hash: af1e6684fd
Runtime Environment:
OS Name: ubuntu
OS Version: 16.04
OS Platform: Linux
RID: ubuntu.16.04-x64
Base Path: /usr/share/dotnet/sdk/1.0.4
答案 0 :(得分:1)
很可能你错过了一个依赖
这是我的代码:
apt-get update \
&& apt-get install -y --no-install-recommends \
libc6 \
libcurl3 \
libgcc1 \
libgssapi-krb5-2 \
libicu52 \
liblttng-ust0 \
libgdiplus \
libssl1.0.0 \
libstdc++6 \
libunwind8 \
libuuid1 \
zlib1g \
如果没有参考this