如果尝试下载我的独立应用程序时出错:无法找到运行此应用程序的运行时版本

时间:2014-09-22 11:32:23

标签: c# .net visual-studio-2010 download

enter image description here

  • 我使用VS 2010 C#Express
  • 文件经过数字签名(使用signtool签名/验证)
  • 目标框架:.NET Framework 4客户端配置文件
  • 已安装.NET Framework 4客户端配置文件
  • 我正在将exe上传到一个简单的静态html页面
  • 如果我(或任何人)点击下载链接,请点击上面的消息
  • 右键单击 - >将目标另存为...工作正常
  • 下载后我可以毫无问题地运行文件

2 个答案:

答案 0 :(得分:0)

我冒昧地猜测问题不在可执行文件本身内,而是在将其交付到网页或将其交付给最终用户的某个地方;特别是考虑到程序在下载后将无问题地运行。

你是否完全审查了这个过程?你提到了简单的静态html页面' - 详细说明一点,你可能会得到更多的建议,可以引导你找到合适的解决方案。使用Web服务器?涉及技术?运行apache之类的个人机器?还是一些网站生成器?或类似Wordpress的东西?或其他一些网络托管公司及其产品?如果问题存在于其中,那么进一步的细节将很有必要帮助你推断导致问题的原因。

我确定你知道,这个特定的错误消息似乎主要出现在那些使用产品创建的产品或包含需要.NET 2.0,3.0或3.5的库的产品中 - 因为它们是(默认情况下)不再是pre-installed on newer systems released with Windows 8+ ...一个简单的测试来排除可能性就是简单地安装.NET 3.5安装程序并查看问题是否神奇地消失了 - 如果确实如此,那么你可能需要做关于“交付机制”的进一步研究。 - 阅读,使用的网络服务器 - 它需要的技术 - 等...

如果这样做了......也许这是x86 vs x64问题? 32位应用程序在64位操作系统上运行?沿着这些方向的东西?一个简单的测试是创建2个可执行文件:一个配置为将所有输出构建为x86,另一个将所有输出构建为x64 - 查看两者的行为是否相同或是否存在差异,并从那里向前移动。

我相信在这种情况下,你需要四处游戏并运行一些测试才能深入了解它。祝你好运。

答案 1 :(得分:0)

请问您为什么要专门针对.NET 4.0客户端平台?为什么不继续定位到4.5版本之一?是否需要定位discontinued release of .NET

在该链接和this one under the 'Additional Information' section中,有一些声明表明“已到位”更新'到.NET 4.0是为了将已经安装的.NET 4.0客户端平台迁移到.NET 4.0完全安装 - 似乎没有任何写入来表明4.5安装程序安装了4.0,如果它&# 39;尚未安装在系统上。

因此,所有安装了.NET 4.5的计算机都将取代上面提到的目标框架'您正在使用那些机器上不再存在的东西构建的.NET ...我认为这可能是所收到的弹出错误的原因。您是否至少可以尝试定位4.5版本的.NET之一并更新可执行文件以便在服务器上下载?再试一次,看看错误是否消失了?如果是这样,那么您面临的问题与客户端计算机上安装的.NET客户端平台无关(或由于4.5更新而导致更长时间)。

如果是这种情况并且需要定位.NET 4.0,那么您可能需要定位Full 4.0版本而不是Client Profile版本。或者只是移动到4.5版本中的一个。