Skip to main content
 首页 » 编程设计

c#之如何允许 powershell 从 .net 核心 MVC web 应用程序下载 EXE

2024年02月04日27bonelee

我有一个依赖于 .net 框架控制台应用程序的 .net 核心 MVC 网络应用程序。当核心应用程序构建时,控制台应用程序也会构建,我在 bin 目录中获得了 exe:

这很好用,但是现在我需要通过 Web 应用程序提供一个端点,允许任何人下载 EXE(目的是允许 powershell 脚本通过端点下载 exe)。

如何实现?

我了解以下内容可用于实际下载文件:

Invoke-WebRequest http://localhost:8080/download/tokenizer.exe -OutFile c:\download\tokenizer.exe 

但是我不知道如何让 exe 可访问。我认为我需要将 EXE 从 bin 移动到某个目录,然后我将其配置为可公开访问,但我在这里忘记了细节。

请您参考如下方法:

默认情况下,ASP.NET Core 静态文件中间件将只提供它理解的内容类型。未知文件类型将返回 404。

中间件可以配置为提供未知文件类型,但是显式添加您自己的内容类型更安全:

var provider = new FileExtensionContentTypeProvider(); 
provider.Mappings[".exe"] = "application/vnd.microsoft.portable-executable"; 
app.UseStaticFiles(new StaticFileOptions 
    { 
        ContentTypeProvider = provider,             
    });