Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何构建包含依赖项的.NET Framework可执行文件_C#_.net - Fatal编程技术网

C# 如何构建包含依赖项的.NET Framework可执行文件

C# 如何构建包含依赖项的.NET Framework可执行文件,c#,.net,C#,.net,我是.NET新手,有以下问题:我编写了一个简单的应用程序,它引用了几个NuGet包。我想为我的项目创建一个可执行文件,可以在我们的一个Windows服务器上运行。 Visual Studio为我生成的myproject.exe文件似乎不包含引用的NuGet软件包,这意味着我无法将myproject.exe文件复制到Windows服务器并在那里运行 如何创建一个包含应用程序所需的所有依赖项的.exe文件,以便在Windows服务器上运行

我是.NET新手,有以下问题:我编写了一个简单的应用程序,它引用了几个NuGet包。我想为我的项目创建一个可执行文件,可以在我们的一个Windows服务器上运行。 Visual Studio为我生成的
myproject.exe
文件似乎不包含引用的NuGet软件包,这意味着我无法将
myproject.exe
文件复制到Windows服务器并在那里运行


如何创建一个包含应用程序所需的所有依赖项的
.exe
文件,以便在Windows服务器上运行
但是,在Windows服务器上运行应用程序不需要这样做。默认情况下,bin目录通常包含部署解决方案所需的所有内容(因此,它的所有内容以及您的可执行文件都应该被复制)。

如果一个可执行文件真的是您所遵循的(参见),您可以考虑ILIGHORY。
但是,在Windows服务器上运行应用程序不需要这样做。默认情况下,bin目录通常包含部署解决方案所需的所有内容(因此应复制其所有内容以及可执行文件)。

可执行文件不能包含所有依赖项。您可能想考虑创建一个安装程序打包器,您可以在服务器上运行它来安装exe以及所有的依赖项。它可能是@ gSerg的复制品,但我不认为AsKER真的想要实现。(除非部署策略只允许移动一个文件,否则在Windows服务器上运行此操作不需要ILMerge)可执行文件不能包含所有的依赖项。您可能需要考虑创建一个安装程序打包器,可以在服务器上运行以安装exe以及所有依赖项。它可能是@ gSerg的副本,但我不认为AsKER真的试图实现。(除非部署策略只允许移动一个文件,否则在Windows服务器上运行此操作不需要ILMerge)。感谢您提供的信息。因此,在.NET社区中,通常只需压缩exe+dll文件,将其发送到服务器,解压缩并运行?@protoken是的,除非您的应用程序非常简单,否则不太可能只需要一个可执行文件。在更复杂的环境中,如果某些dll已经打开,则可能不需要复制所有dll目标机器(在称为全局程序集缓存的东西中,请参阅)。在您真正需要使用GAC之前,我不会担心这种复杂性(通过复制整个bin文件夹,在应用程序的即时探测路径中提供依赖项要容易得多)@protoken只是想补充一下,还有其他的部署策略,比如创建一个MSI安装程序,将您需要的所有文件部署到目标机器上,如果要部署到更广泛的受众,您会希望这样做。但是,如果您要部署到您控制下的一台服务器上,那么这并不是一个您需要担心的复杂问题(如果您想复制ZIP文件以外的东西,请考虑使用您的构建过程/服务器部署或探索类似ClickOnce的东西,请参阅)。谢谢你提供的信息。我正在犹豫是否使用zip方法,或者干脆将所有内容都放在Docker容器中并进行部署。无论如何,谢谢你的输入!谢谢你提供的信息。因此,在.NET社区,只需压缩exe+dll文件,将其发送到服务器,解压缩并运行?@protoken Yes,除非您的应用程序非常简单,否则不可能只需要一个可执行文件。在更复杂的环境中,如果目标计算机上已经有DLL,则可能不需要复制所有DLL(在称为全局程序集缓存的内容中,请参阅)。不过,在您真正需要使用GAC之前,我不会担心这种复杂性(通过复制整个bin文件夹,在应用程序的即时探测路径中提供依赖项会容易得多)@protoken只是想补充一下,还有其他的部署策略,比如创建一个MSI安装程序,将您需要的所有文件部署到目标机器上,如果要部署到更广泛的受众,您会希望这样做。但是,如果您要部署到您控制下的一台服务器上,那么这并不是一个您需要担心的复杂问题(如果您想复制ZIP文件以外的东西,请考虑使用您的构建过程/服务器来部署或探索像ClickOnce这样的东西,请参阅)。谢谢您的信息。我正在决定是否要使用ZIP方法,或者简单地把所有东西放在一个DoCK容器中并部署它。无论如何,谢谢您的输入!