2017-11-21 13 views
1

私は.netフレームワークコンソールアプリケーションに依存する.netのコアMVC Webアプリケーションを持っています。コア・アプリケーションのビルドので、あまりにもコンソールアプリを行い、私はbinディレクトリにexeを取得する場合:powershellが.netコアMVC WebアプリケーションからEXEをダウンロードする方法を教えてください。

enter image description here

これは素晴らしい取り組んでいる、しかし、今私ができるWebアプリを通じてエンドポイントを提供する必要があります誰でもEXEをダウンロードしてください(目的は、PowerShellスクリプトがエンドポイント経由でEXEをダウンロードできるようにすることです)。

これはどのように達成できますか?

は、私は次のように実際にファイルをダウンロードするために使用することができます理解:

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

は、しかし、私は exeアクセスを取得する方法がわかりません。私はEXEを binからいくつかのディレクトリに移動する必要があると信じていますが、ここでは公にアクセスできるように設定していますが、ここでは詳細が分かりません。

+0

どのようにあなたの静的の残りの部分を提供している:不明なファイルの種類は、ミドルウェアは、しかし、それが明示的に独自のコンテンツタイプを追加する方が安全である、不明なファイルの種類を提供するように構成することができる404

を返します。コンテンツ? ( 'wwwroot'?) – SLaks

+0

@SLaks私はちょうどそれをチェックしました。それは' wwwroot'です。私は、.netのコアコンベンションに少し慣れています。それはwwwrootにコピーするポストビルドイベントが必要なのですか? – user666

答えて

2

デフォルトでは、ASP.NETコアスタティックファイルミドルウェアは、理解できるコンテンツタイプのみを提供します。

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

.Net Coreアプリケーションは、wwwrootディレクトリの静的ファイルを提供します(これはStartup.csで設定されています)。

静的ファイルを提供するには、静的ファイルをコピーする必要があります。

+0

'exe'ファイルで' GET'をサポートするために必要なカスタム設定はありますか?私は知っている.net framework/web.configsはこのような状況でいくつかの強制を必要としていた... – user666

+0

そして、あなたは 'bin'ディレクトリからwwwrootにファイルをコピーする最良の方法を知っていますか? – user666

+0

.Net Coreは拡張機能によるフィルタリングを行いません。ビルド後のイベントを使用する必要があります。 – SLaks

関連する問題