为什么没有Visual Studio,我的WPF程序无法运行?

Tom Xue

我制作了一个使用的WPF程序SQLite而通过使用Visual Studio 2012,它同时生成DebugRelease版本的exe文件。当我进入DebugRelease目录并运行我的exe文件时,例如MultiStart.exe,它可以正常运行。

但是,如果我将其复制MultiStart.exe到我的桌面上并尝试运行它,它将失败。通过多次试验,我发现我还需要复制的文件MultiStart.exe.config,并System.Data.SQLite.dll在我的桌面。然后它可以立即运行。但为什么?我们是否有更好的解决方案,这样我就可以在没有附加文件的情​​况下运行它?谢谢!

兰迪支持莫妮卡

为什么没有Visual Studio,我的WPF程序无法运行?

问题标题不是很准确,因为它与Visual Studio无关。MultiStart.exe取决于配置(MultiStart.exe.config)以及其他程序集(System.Data.SQLite.dll)。没有这些依赖关系,应用程序将无法运行(因为.NET是这样工作的)。

WPF不一定需要运行配置文件,因此问题是应用程序所需的配置文件中包含什么。可能可以将此配置信息移入代码(例如,连接字符串)并删除app.config,但随后这些值将在应用程序中进行硬编码。

就依赖程序集而言,可以将它们作为资源嵌入,然后使用AppDomain.AssemblyResolve事件从资源中读取该程序集(而不是部署它们)(请参阅将程序集嵌入另一个程序集内)。

代替将程序集作为资源嵌入的另一种方法是将它们合并为一个程序集。ILMerge是合并程序集的流行选择,但我读到它可能与WPF程序集有关(不确定是否适用于您)。有关程序集与WPF合并的其他一些想法,请参见使用wpf将dll合并到单个.exe中

请注意,设置PATH变量不起作用,因为.NET不会使用PATH来解析程序集-有关详细信息,请参见运行时如何定位程序集

另一种选择MultiStart.exe是使用链接到相应目录的桌面快捷方式,而不是将其复制到桌面。也许那是一个更简单的解决方案

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在OS X中,为什么使用println()导致我的程序比没有println()的程序运行更快

我的程序没有运行main方法,为什么呢?

为什么我可以在没有管理员权限的情况下附加Visual Studio以进行处理

为什么我的Visual Studio Code任务没有执行?

为什么没有Typescript命令出现在Visual Studio Code命令面板中?

为什么我的程序无法运行?

为什么在Visual Studio 2015中通过按CTRL + F5构建项目时,我的断点没有出现?

为什么我的代码无法在Visual Studio Code中运行?

为什么我的python Slack应用程序永远运行而什么也没有发生?

为什么C ++(Visual Studio)数据类型没有停止在其极限上?

为什么jekyll没有运行?

为什么在python visual studio代码中没有显示pylint的错误曲线行?

为什么我的Visual Studio自动关闭而没有任何错误

为什么Visual Studio代码无法运行我的代码?

为什么Visual Studio没有给我创建DLL的选项?

经典的快照模式是什么,为什么没有快照就无法安装某些快照(例如MS Visual Studio)?

为什么我在Visual Studio 2008的“工具”下没有调试选项?

为什么我可以在没有凭据的情况下以编程方式连接到Visual Studio Online项目?

为什么我的“ Circle”程序无法运行?

为什么我的Java程序没有运行?

为什么Visual Studio 2015中没有本地Windows调试器?

为什么我的打包程序 exe 没有运行?

为什么这个循环没有运行?

为什么 Visual Studio 2017 没有 ActionController 和 ManageController

为什么 Visual Studio 不再在没有管理员权限的情况下编译

为什么 for 循环没有运行?

为什么 Visual Studio 2019 没有创建 Content、AppData、Scripts 文件夹

为什么我的 SKShapeNode 子类在我运行我的应用程序时没有出现?

为什么在 Visual Studio Code 控制台中似乎没有检测到 JavaScript 错误?