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