新建 .NET "project.json" 项目,将预构建的本机 .dll 复制到输出目录

New .NET "project.json" project, copying pre-built native .dlls to the output directory

我希望将我的项目转换为使用 project.json 格式,但仍在使用 .NET CLR,直到第 3 方依赖项添加对 CoreCLR 的支持。

话虽如此,我对 "content" 目录中文件的一些 NuGet 依赖项需要输出到 运行ning 应用程序的 bin 目录中。

由于 project.json 目前不支持 NuGet 内容,我手动将文件添加到我的项目目录中。

然而,当我运行应用程序时,它仍然找不到这些本地程序集。如果我手动将这些程序集添加到 .dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-final\bin,我的应用程序 运行 没问题,所以这只是这些文件以某种方式放入应用程序路径的问题。

那么,我该怎么做呢?在 MSBuild 中,有 "Copy To Output Directory" = "Copy if newer".

您可以使用 postbuild 脚本来实现您想要的。

举个例子:https://github.com/aspnet/dnx/blob/2acce95b3f2ad4e924bc36471ed8f08ee1fccd2b/src/Microsoft.Dnx.Compilation.CSharp.Abstractions/project.json#L21-L28

当前在 .NET Core RTM 中执行此操作的方法是设置 copyToOutput in project.json's buildOptions section:

将您的 project.json 更改为:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  // more stuff
}

...为此:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true,
    "copyToOutput": { "includeFiles": [ "ClearScriptV8-32.dll", "v8-ia32.dll" ] }
  },

  // more stuff
}