【问题标题】:How can I make a program work on different computers independent of .NET Framework? C#如何使程序在独立于 .NET Framework 的不同计算机上运行? C#
【发布时间】:2012-11-29 00:18:51
【问题描述】:

我有一个应用程序,其中包括将游戏状态保存在文本文件中。我正在向我的几个朋友发送 .exe 文件。保存在某些计算机上有效,而在其他计算机上则例外。

当我研究了一下,我认为这可能是接收端没有兼容的 .NET Framework 的问题。当然,这对我来说是不可取的,因为我希望该应用程序可以在每台计算机上运行..

您知道如何使程序独立于 Microsoft 的 Framework 版本吗?

我正在使用这个过程保存文件,如果它有助于了解我在说什么:

string filePath = System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + "\\ConnectFour.txt";

StreamWriter myFile = File.CreateText(filePath);

请问我该怎么办?

非常感谢!

【问题讨论】:

  • 您在代码中使用的所有类/方法都支持从 .Net 框架 1.1 到 4.5。我不认为这是.Net框架的问题,而是文件路径的问题,这在每台计算机上都会有所不同。你可以发布你得到的异常
  • 有哪些例外?
  • @Habib 这就是我使用上述方法获取文件路径的原因。它的目的是获取用户放置可执行文件的路径,不是吗?他们得到的例外是因为他们无法创建文件
  • 我首先想到的是程序是否正在写入它有权访问的目录。
  • 您可以在项目设置中设置框架的版本级别,但这对目标计算机根本没有框架或版本低于您要求的最低版本的情况没有帮助。如果您不能依靠用户自己下载所需的版本,则必须按照我的帮助提供安装设置。 stackoverflow.com/questions/6090913/… 然而,正如其他人评论的那样,无一例外地看看这是什么问题,这可能不是原因。

标签: c# .net executable save


【解决方案1】:

您可以在程序集或安装程序中包含 .net 框架。 检查这个: Add .Net Framework 4.0 into setup project

【讨论】:

  • 假设作者使用的是 Visual Studio 2010 或更低版本,Visual Studio 2012 没有此功能。
【解决方案2】:

这更有可能是由于个人用户必须将文件写入该文件夹的权限。

相反,请考虑使用临时文件区域。使用它来获取它:

string filePath =  Path.Combine(Path.GetTempPath(),"ConnectFour.txt");

【讨论】:

  • 嗯,是的,我认为这是有道理的,但是我正在和我的朋友交谈(保存在她的电脑上不起作用),她说文本文件已创建,但留空..所以我不要认为它与权限有关,是吗?
  • 好吧,上面显示的代码没有显示任何实际写入文件的内容,所以很难说!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多