最佳答案
我有一个 VS2017项目,编译成一个 DLL,然后被调用的 EXE 写的其他人。两个项目的目标都是。Net Framework 4.6.2.我重写了一个 DLL 方法来返回一个元组,并导入了相关的 NuGet 包。当我编译该项目时,它包括 System。输出目录中的 ValueTuple.DLL,然后将其部署到其他机器上,在这些机器上,我的 DLL 被加载并由 EXE 调用。但是当 EXE 尝试调用返回元组的方法时,它会崩溃:
无法加载文件或程序集系统。ValueTuple,Version = 4.0.1.0,Culture = 材质,PublicKeyToken = cc7b13ffcd2ddd51’或其依赖项之一。系统找不到指定的文件。
我不明白为什么找不到这个文件,因为它和我的 DLL 在同一个文件夹中。显然 MS 没有把这个程序集包括在。Net Framework 4.6.2.
注意,我的 DLL 是使用 machine.config 文件在 Windows 中注册的。我猜如果我加上 System。将 ValueTuple.dll 添加到这个文件将会起作用(还没有尝试过,也不确定这是否是最好的方法,尤其是长期的方法)除了等待4.6.3并希望它包含这个程序集之外,还有更好的方法吗?