C#应用程序不';如果超出生成文件夹,则无法运行

C#应用程序不';如果超出生成文件夹,则无法运行,c#,C#,我有个奇怪的问题 我在VS2012上做了一个C#“Windows窗体应用程序”项目。它有一些第三方DLL链接。构建很好,我可以运行项目构建文件夹中的exe文件,即\myproject\bin\Debug\x.exe。但是,如果我将exe复制到任意位置并双击exe,它将不再运行。我在自己的电脑和别人的电脑上都试过了 我正在使用Windows8和.NET4.5 请告诉我一些情况。移动使用第三方库的应用程序的可执行文件时,请确保将.DLL文件一起移动 .NET应用程序使用本地执行路径首先检查dll依赖

我有个奇怪的问题


我在VS2012上做了一个C#“Windows窗体应用程序”项目。它有一些第三方DLL链接。构建很好,我可以运行项目构建文件夹中的exe文件,即\myproject\bin\Debug\x.exe。但是,如果我将exe复制到任意位置并双击exe,它将不再运行。我在自己的电脑和别人的电脑上都试过了

我正在使用Windows8和.NET4.5


请告诉我一些情况。

移动使用第三方库的应用程序的可执行文件时,请确保将.DLL文件一起移动

.NET应用程序使用本地执行路径首先检查dll依赖项,然后查询全局程序集缓存(又称GAC)。GAC包含.NET framework的所有内置库,但也可以向其中添加自定义库


然而,引用DLL的常见场景是将它们与可执行文件一起保存,因为在GAC中安装库是一个更复杂的场景,并且需要在任何运行可执行文件的计算机上安装先决条件。

移动使用第三方库的应用程序的可执行文件时,确保将.DLL文件与之一起移动

.NET应用程序使用本地执行路径首先检查dll依赖项,然后查询全局程序集缓存(又称GAC)。GAC包含.NET framework的所有内置库,但也可以向其中添加自定义库


然而,引用DLL的常见场景是将它们与可执行文件一起保存,因为在GAC中安装库是一个更复杂的场景,并且需要在任何运行exe的机器上安装先决条件。

“它链接了一些第三方DLL”&&“如果我复制了exe”。。。这可能是问题的一部分吗?找到了一些东西。正如我所怀疑的,如果我将第三方DLL复制到exe所在的同一文件夹中,应用程序就会开始运行。链接有什么问题吗?“链接”并不意味着包括。有关详细信息,请阅读Ivaylos的回答。“它有一些第三方DLL链接”&&“如果我复制了exe”。。。这可能是问题的一部分吗?找到了一些东西。正如我所怀疑的,如果我将第三方DLL复制到exe所在的同一文件夹中,应用程序就会开始运行。链接有什么问题吗?“链接”并不意味着包括。有关详细信息,请阅读Ivaylos答案。谢谢,有什么方法可以将两者打包为一个独立的应用程序,或者我需要使用setup builder来完成此操作?任何更适合您的方法。常见的场景是有一个安装项目(VS支持它)并捆绑应用程序和依赖项。一种非常快速且懒惰的方法是使用自解压归档和bin文件夹的内容作为设置,但这不是一种非常专业的方法gac mean全局程序集缓存。不是应用程序库,是否可以将两者打包为一个独立的应用程序,或者是否需要使用setup builder来执行此操作?任何更适合您的方法。常见的场景是有一个安装项目(VS支持它)并捆绑应用程序和依赖项。一种非常快速且懒惰的方法是使用自解压归档和bin文件夹的内容作为设置,但这不是一种非常专业的方法gac mean全局程序集缓存。不适用