无法在其他PC上运行Windows窗体应用程序

时间:2014-09-13 07:40:25

标签: c# .net windows visual-studio-2012

我在VS2012中使用C#制作了一个相当简单的Windows表单应用程序。当我将\ Bin \ Release的内容复制到我制作应用程序的(Windows 8)PC上的其他文件夹时,一切运行正常。 但是,当我将此文件夹复制到另一台PC(Windows 7)并尝试运行EXE时,我立即从Windows收到错误:

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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

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