Asp.net core 如何在.NET Core DNX中发布的Approt中包含自定义二进制文件?

Asp.net core 如何在.NET Core DNX中发布的Approt中包含自定义二进制文件?,asp.net-core,.net-core,Asp.net Core,.net Core,我正在开发一个ASP.NET Core 1.0应用程序,我使用Docker将其部署到Linux机器上 在我的CI管道中,我使用dnu publish发布项目,然后使用docker build构建docker映像 我有一个静态二进制文件,我需要在我的docker映像中使用。(这是一个修补程序,我需要将其复制到coreclr运行时目录中。)我希望能够通过我的Dockerfile中的命令访问该文件 当我在执行dnu publish时,有什么惯用的、可靠的方法将该文件复制到输出目录中?由于找不到更好的解

我正在开发一个ASP.NET Core 1.0应用程序,我使用Docker将其部署到Linux机器上

在我的CI管道中,我使用
dnu publish
发布项目,然后使用
docker build
构建docker映像

我有一个静态二进制文件,我需要在我的docker映像中使用。(这是一个修补程序,我需要将其复制到coreclr运行时目录中。)我希望能够通过我的
Dockerfile
中的命令访问该文件

当我在执行
dnu publish
时,有什么惯用的、可靠的方法将该文件复制到输出目录中?由于找不到更好的解决方案,我目前正在做的是将其添加到wwwroot,以便将其复制到输出文件夹中的wwwroot中。
但是,我不希望该文件可以公开访问,最好是让它在approt中结束

我在SO上找到并尝试过的方法,但不起作用:

  • 在project.json中包含文件作为
    “contentFiles”:[“mylib.so”]
    。如果执行此操作,则在dnx构建期间会出现以下错误:
    错误:进程无法访问文件“C:\myapp\src\myapp.web\mylib.so”,因为另一个进程正在使用该文件。
  • 我尝试创建一个自定义的postBuild脚本(在这里找到了建议:),但我不知道将文件复制到哪里,因为我有不同的CI管道使用不同的发布输出目录发布同一个项目,所以我无法将目录路径硬编码到我的project.json中。
    或者是否有方法将其复制到生成目录中,该目录将由
    dnu publish
    拾取,而不考虑
    publish
    的输出目录

您可以编写一个中间件来检查和阻止对某个文件夹的访问,即/bin(wwwroot/bin)或将
onpreparereresponse
设置为
StaticFileOptions
(参见示例)好主意,谢谢!虽然感觉有点黑,但如果找不到合适的解决方案,我肯定会尝试在
approt
中输出文件。