文件具有与清单中指定的不同的计算哈希值

时间:2012-09-11 23:32:42

标签: 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安装程序部署应用程序时,出现以下错误:

File, openvpn.exe, has a different computed hash than specified in manifest.

在我可以在整个互联网上找到的每个其他帖子中清理,重建和遵循说明后,我似乎无法解决这些当前设置的问题。我能够安装和运行它的唯一方法是将文件上的设置更改为以下内容:

  • 构建操作:
  • 复制到输出目录:始终复制

现在使用这些设置,在部署时,我没有得到相同的哈希错误,但似乎文件的位置已经移动,我的代码抛出了所有地方的execptions,因为它找不到它。< / p>

所以有两个解决方案:

  • 解决哈希问题,不更改任何代码。
  • 查找一些现在的代码,以帮助我在最终用户计算机上找到该文件。

任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:0)

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

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

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

而不是尝试创建绝对:

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