c# - 文件具有与 list 中指定的不同的计算哈希值

标签 c# .net visual-studio-2010 .net-2.0

我通常只使用 C# 创建 Web 应用程序,但我曾尝试转而创建 WinForms 应用程序。我创建了一个 OpenVPN 客户端,它基本上是 OpenVPN.exe 之上的外观。该项目需要包含 OpenVPN.exe 文件,它的位置如下:

 string ovpnLocation = System.Windows.Forms.Application.StartupPath
      + "\\OpenVPN_Client\\openvpn.exe";

我在 VS 中对文件应用了以下属性:

  • 构建操作:内容
  • 复制到输出目录:总是复制

现在,当我尝试使用 ClickOnce 安装程序部署应用程序时,出现以下错误:

文件 openvpn.exe 的计算哈希值与 list 中指定的哈希值不同。

在清理、重建并按照我​​在整个互联网上找到的所有其他帖子中的说明进行操作后,我似乎无法通过这些当前设置解决这个问题。我能够安装和运行它的唯一方法是将文件上的设置更改为以下内容:

  • 构建操作:
  • 复制到输出目录:总是复制

现在有了这些设置,在部署时,我不会得到相同的散列错误,但文件的位置似乎已经移动,我的代码到处都抛出异常,因为它找不到它。

所以有两种解决方案:

  • 解决散列问题,不更改任何代码。
  • 现在找到一些代码来帮助我在最终用户机器上找到文件。

非常感谢任何帮助!

最佳答案

我通过将项目升级到 .Net 4.0 设法解决了这个问题。

通过使用相对路径解决了文件路径的问题:

 string ovpnLocation = "OpenVPN_Client\\openvpn.exe";

而不是试图创造一个绝对的:

string ovpnLocation = System.Windows.Forms.Application.StartupPath
  + "\\OpenVPN_Client\\openvpn.exe";

关于c# - 文件具有与 list 中指定的不同的计算哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379329/

相关文章:

c# - 类型 native Wifi.Wlan + WlanReasonCode 无法编码错误

c# - “Invalid window handle” 使用 C# .net 框架 4.7.2 中的 FileOpenPicker 和 Microsoft.Windows.SDK.Contracts 而没有 UWP 时出现错误

c# - 如何部署引用一个DLL的多个程序?

c# - 使用数据绑定(bind)获取 WPF Listview 以显示 ObservableCollection<T>

.net - WPF TreeView - 使用嵌套集合和 "Static nodes"绑定(bind)到 ViewModel

c++ - Qt Creator 2.6.1 + Qt 5 + C++11 + MSVC2010 编译器

c# - 如何让我的应用程序运行得更快

visual-studio-2010 - Visual Studio 2010 中的 OpenGL 配置

visual-studio-2010 - Visual Studio 2010:针对更高框架版本的引用程序集

c# - Wpf 置于最前面