L. *_*leu 6 c# azure epplus .net-core-3.1
使用 VS2019 我生成了一个 Azure Function 项目。Azure 函数由 HTTP 请求触发,以使用 EPPlus 将 CSV 内容转换为 XLSX 文件。
代码非常非常简单:
[FunctionName("Function1")]
public static async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log)
{
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
// line below will raise "System.Text.Encoding.CodePages.dll" not found exception
ExcelPackage xcel = new ExcelPackage();
// ... some other code
}
Run Code Online (Sandbox Code Playgroud)
ExcelPackage 实例将引发以下错误:“无法加载文件或程序集 'System.Text.Encoding.CodePages,Version=5.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'。系统找不到指定的文件。” EPPlus 依赖于 System.Text.Encoding.CodePages 5.0.0.0,但看起来 .Net core 3.1 依赖于 4.x 版本。
我认为并成功测试的解决方法是将 System.Text.Encoding.CodePages.dll 复制到我的解决方案的 bin 文件夹中。但非常不令人满意,因为每次我重建解决方案时,我都必须手动部署System.Text.Encoding.CodePage.dll。
我尝试过关于绑定重定向的不同内容,但没有成功。这并不奇怪,因为绑定重定向更多地与 .net 框架相关。
这让我抓狂。
\n\nExcelPackage 实例化将引发以下错误:“无法\n加载文件或程序集\'System.Text.Encoding.CodePages,\nVersion=5.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a\'。\n系统找不到指定的文件。” EPPlus 依赖\nSystem.Text.Encoding.CodePages 5.0.0.0,但看起来 .Net core 3.1\n依赖于 4.x 版本。
\n
这与版本无关System.Text.Encoding.CodePages
。我可以给你解释一下这种情况(其实和VS 2019中azure function tools的after-build操作有关)。
事实上,在构建azure function app后,该System.Text.Encoding.CodePage.dll
文件已经被复制到该文件夹中。.\\bin\\Release\\netcoreapp3.1\\bin
但是,azure功能工具做了一个操作,它删除了许多文件.\\bin\\Release\\netcoreapp3.1\\bin
构建azure function应用程序后删除了许多文件。
\n\n我认为并成功测试的解决方法只是将\nSystem.Text.Encoding.CodePages.dll 复制到我的解决方案的bin 文件夹中。\n但非常不令人满意,因为每次我重建\n解决方案时,我都必须部署System.dll。 Text.Encoding.CodePage.dll\n手动。
\n
您可以尝试使用“构建”操作而不是“重新构建”操作。System.Text.Encoding.CodePage.dll
将其放入 bin 文件夹后,“build”操作不会将其删除。
这不是你的错,我认为这是azure function工具的设计错误。如果构建操作后不自动执行删除操作,则不会出现问题。希望我的回答能够解答您的疑惑。
\n并且您也可以反馈这个问题。
\n(我认为你不需要的代码,所以我不会\xe2\x80\x99t发布它。我已经做了测试,工作正常。)
\n 归档时间: |
|
查看次数: |
6471 次 |
最近记录: |