2014-09-13 101 views
0

我已经使用VS2012中的C#制作了一个相当简单的Windows窗体应用程序。当我将\ Bin \ Release的内容复制到我创建该应用程序的(Windows 8)PC上的其他文件夹中时,一切运行良好。但是,当我将此文件夹复制到不同的PC(Windows 7)并尝试运行EXE时,Windows中会立即出现错误:无法在其他PC上运行Windows窗体应用程序

程序已停止工作。问题事件名称:CLR20r3 问题签名09信息:System.IO.FileNotFoundException

文件夹和它的内容是完全一样的其他电脑,我在那里建立了应用上。它包括.EXE文件,一个.SDF(SQL Compact)数据库文件和Microsoft.Office.Interop.Excel.DLL(我必须将该DLL包含在某个功能中,但在我构建它的PC上,独立应用程序从它自己的文件夹运行而不必包含此DLL,因此我不确定是否应该将其包含在其他PC上)。

到目前为止,我已经尝试将DLL复制到Windows \ System32,更新.NET Framework +重新启动,以管理员身份运行。

我希望使这个独立的应用程序运行在Windows 7 PC和Windows XP笔记本电脑上。他们两个都没有安装Visual Studio。谁能帮帮我吗?

+0

不确定,但请记住,如果您使用Interop.Excel,则需要在目标PC上安装Office。 – Steve 2014-09-13 07:47:22

+0

您定位的是哪个版本的.Net Framework?那个版本的.Net Framework安装在你正在谈论的PC上? – RenniePet 2014-09-13 07:47:57

+0

如果您查看Windows事件日志,则可能会在该日志中记录它找不到的文件的名称。 – RenniePet 2014-09-13 07:50:03

回答

0

不确定,但它看起来像是由于dotnet版本不匹配而出现此错误。 正如您所提到的,您在运行应用程序时会立即出现此错误。所以,检查你的dotnet版本。

+0

嗯,我已经建议18分钟前。无论如何,这种事情更适合作为评论,而不是作为答案。 – RenniePet 2014-09-13 08:08:03

+0

@RenniePet几天前我们遇到了这种类型的问题,这是由于框架不匹配造成的。我们改变了框架,它工作。这就是为什么我发布这个答案的原因。但我不确定这是否有效。所以我开始写“不确定,但它看起来像,你......” – StartCoding 2014-09-13 08:14:47

+0

我可以将我的目标框架设置为4.0或4.5。任何低于这个和我的应用程序将不会运行在VS2012。我的目标电脑有4.5(今天更新),我目前的目标框架是4.0(也尝试过4.5)。这似乎不是问题。 – Ivo77 2014-09-13 09:38:07

0

感谢您的建议,伙计们。我只是偶然发现了我的问题:

我决定复制.Application文件,并在目标PC上运行它。这给了我以下错误:

“无法安装或运行该应用程序。该应用程序需要首先在GAC中安装System.Data.SqlServerCe版本4.0.0.0。”

所以这就是缺少的。我通过将发布>应用程序文件> SystemDataSqlServerCe.dll>设置为包含来解决此问题,而不是先决条件。然后我让VS发布我的应用程序并在目标PC上运行Setup.exe。我不想安装任何类型的安装程序,但是这样做,安装了使用SqlServer CE的必要文件。之后,除了application.exe和数据库文件之外,我可以删除目标PC上的所有内容,我可以毫无困难地运行它。 我会为其他目标PC做同样的事情,我会保持我的手指交叉,这也将在XP上工作。

相关问题