簡體   English   中英

在ASP.NET MVC Core 1.0(Aka)ASP.net 5 MVC 6中加載非托管dll參考

[英]Load Unmanaged dll reference in ASP.NET MVC Core 1.0 (Aka) ASP.net 5 MVC 6

此問題與ASP.NET MVC WEP API和Naudio有關

我想要的是

當我使用此代碼時,我正在WPF應用程序中使用原型,wav文件轉換為mp3

var retMs = new MemoryStream();
using (var ms = new MemoryStream(File.ReadAllBytes("sound.wav")))
using (var rdr = new WaveFileReader(ms))
using (var wtr = new LameMP3FileWriter(retMs, rdr.WaveFormat, 128))
{
    rdr.CopyTo(wtr);
}
return retMs.ToArray();

但是在api項目中使用此代碼時,出現了這樣的錯誤

無法加載DLL'libmp3lame.dll':找不到指定的模塊。

我知道libmp3lame是未管理的dll,在WPF項目中,我只是將dll復制到bin文件夾,並且一切正常,但是如何在Web API項目中實現這一目標,我的意思是asp.net 5項目

注意
上面的代碼在wpf項目中正常工作

另外現在我的API僅支持dotnetframwork,這意味着只有Windows 刪除了其他平台依賴項

更新:

在ASP.Net MVC創建問題回購

我參加聚會有點晚了,但我會分享給大家。 NAudio可以將WAVE轉換為MP3,而無需使用非托管DLL,從而避免了這個問題。 唯一的麻煩是它必須寫出到文件(然后可以讀回文件)。 假設您有一個MemoryStream,在其中讀取了所有字節(就像您一樣):

using (var wfr = new WaveFileReader(ms))
{
    MediaFoundationApi.Startup();
    MediaFoundationEncoder.EncodeToMp3(wfr, @"C:\Temp\test.mp3", 48000);
    MediaFoundationApi.Shutdown();
}

在bin庫路徑中獲取到模塊的映射聽起來像是一個問題,請查看以下內容,可能會有所幫助-

如何在ASP.NET Core 1.0中獲取bin文件夾

MVC4應用程序“無法加載DLL'libmp3lame.32.dll'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM