gpt4 book ai didi

c# - ASP.NET MVC 以分发包的形式部署

转载 作者:太空狗 更新时间:2023-10-29 18:33:03 25 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 应用程序。我需要一种部署它的方法。

但是

我不需要将它复制到我自己的网络服务器上。它并不意味着它是一个可以在 Internet 上访问的网站。没有。

相反,我需要我的用户能够将它安装在他们自己的服务器上。这可能会或可能不会从 Internet 上看到。

也就是说,我需要创建一个 MSI 程序包(或 EXE 自解压安装程序,或其他),我的客户只需双击它,MVC 应用程序就应该安装在他们的本地 IIS 上。

当然,我可以简单地编写一些代码来提取文件,将它们复制到本地硬盘,然后在 IIS 中创建网站或虚拟目录,等等。但有件事告诉我应该有更简单的方法。比方说,一个 WiX 扩展已经做到了这一点。或者什么的。

注意:应用程序非常简单。不需要数据库、特殊权限、SMTP 服务器配置……或者,实际上,根本不需要任何类型的配置。只需复制文件并创建 IIS 应用。

最佳答案

这可能需要一些编码,但是(如果您需要一个漂亮的 UI)Visual Studio 构建部署包中有一个功能。

Build delpoyment package

它将为您构建一个包,您的客户可以运行该包以在 IIS 中创建所有必要的东西,因此也应用了 IIS 设置。 Scott Hanselman有一系列关于它的帖子。您可以从包/发布设置中更改默认设置。

package/publish settings .要部署包,您必须拥有 msdeploy.exe。您可以发送压缩文件夹,当您的客户运行 .cmd 文件时,他们将立即启动并运行。但是,如果您想在包周围放上漂亮的蝴蝶结,您可以从 C# 应用程序运行它,这将需要一些编码,但我相信这不会超过 15 分钟。

Usage:
--------------------------
{0} [/T|/Y] [/M:ComputerName] [/U:UserName] [/P:Password] [/G:UseTempAgent] [Additional msdeploy.exe flags ...]

你基本上需要做的就是

System.Diagnostics.Process proc = new System.Diagnostics.Process();
const string filename = @"/*some file location*/";
proc.StartInfo.FileName = filename;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();

关于c# - ASP.NET MVC 以分发包的形式部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5790184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com