【问题标题】:Console Application - Unable to find a version of the runtime to run this application (and I have them all)控制台应用程序 - 无法找到运行此应用程序的运行时版本(我拥有所有这些)
【发布时间】:2013-01-11 21:41:49
【问题描述】:

和其他人一样,我在使用从我们的数据库中读取记录的简单控制台应用程序时遇到了问题。

这个小程序需要放在我们的文件服务器上。它读取新记录并将摘要转发给母公司。

这将是一个计划任务,每 X 分钟运行一次。

我不想要安装程序,因为我不希望服务器需要重新启动。

从屏幕截图中可以看出,我已经安装了几乎所有版本的框架,并且调试信息已复制到程序文件夹中。

这是程序的调试版本,但没有其他调试信息输出到窗口。

我已尝试在 2.0、3.5 和 4.0 上构建。所有版本都给我相同的错误信息。

[更新]:wal 在评论中询问

<?xml version="1.0"?>
<configuration>
<startup>

<supportedRuntime version="v2.0.50727"/></startup>
</configuration>

这是一个控制台应用程序,因此它实际上是整个 app.config 文件。当涉及到这些 .config 设置时,我通常一无所知;但是,我似乎觉得我掌握了这个! :)

【问题讨论】:

  • 您知道VtiUpdate.exe 是如何确定.NET 已安装的吗?
  • 在我项目的 app.config 文件中,我指定了 &lt;supportedRuntime version="v4.0"/&gt;。是这样的吗?
  • 你的目标是完整的框架,但只在另一台机器上安装了客户端框架?
  • 另外,安装程序不需要一直重启。安装程序唯一需要重新启动的情况是它需要覆盖正在使用的文件。
  • “其他机器”是我们的网络服务器,所以我猜它已经安装了完整版本。尽管如此,据我所知,.NET Framework 2.0 并没有 client 版本。正确的?所以,2.0 不应该有这个问题......我想。

标签: c# .net console-application


【解决方案1】:

当我把我的可执行文件放在这里时,我原本以为有人会因为我的技术不好而对我大惊小怪,但当时我并不在意。我只是想让它工作。

注意可执行文件的放置位置?

它位于C:\Windows\System32 文件夹中。

显然,System32 文件夹用于 Windows 命令。

那么,我为什么将我的小可执行文件放在这里?因为该文件夹几乎可以保证包含在 Windows 环境路径中。

我知道最终会有人生我的气,所以我想我今天把它移到 Program Files (x86) 目录中一个适当命名的新文件夹中。

好吧,我做到了,现在程序运行良好,就像变魔术一样。

所以,我猜测.NET Framework 应用程序不允许在System32 文件夹中运行。

不过,我想听听人们告诉我这到底是怎么回事,以及为什么 .NET Framework 应用程序无法进入这里。

【讨论】:

  • 我遇到了完全相同的问题,将其移出 C:\Windows\System32 就可以了。谢谢!
  • 是的,好的.. 但是为什么它不能在 system32 目录中运行?没人知道吗?!
【解决方案2】:

我怀疑 .Net 安装已损坏。您可以尝试使用以下工具清理 .net 框架并重新安装。

.net framework cleanup tool

【讨论】:

  • 您认为它在我们的服务器上已损坏吗?如果我将app.config 更改为指向另一个框架,但仍然出现错误,这是否意味着所有版本都已损坏?其他 .NET 应用程序已启动并正在运行。
  • 我找不到任何其他解释;如果我是你,我会创建一个简单的控制台应用程序来测试框架是否在服务器中正常工作。
猜你喜欢
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
相关资源
最近更新 更多