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

2

3

I'm looking to convert my project to use project.json format, but still using the .NET CLR until 3rd party dependencies add support for CoreCLR.

With that said, some of my NuGet dependencies of files in the "content" directory that need to be output into the bin directory of the running application.

Since project.json currently doesn't support NuGet content, I manually added the files to my project directory.

Custom files

However, when I run the application, it still can't find these native assemblies. If I add these assemblies manually to .dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-final\bin, my application runs fine, so it is just a matter of these files somehow getting put into the applications PATH.

So, how do I do it? In MSBuild, there was "Copy To Output Directory" = "Copy if newer".

Jard answered 27/11, 2015 at 6:22 Comment(0)
H
6

You can use a postbuild script to achive what you want.

Here's an example: https://github.com/aspnet/dnx/blob/2acce95b3f2ad4e924bc36471ed8f08ee1fccd2b/src/Microsoft.Dnx.Compilation.CSharp.Abstractions/project.json#L21-L28

Hail answered 27/11, 2015 at 7:41 Comment(0)
A
6

The current way to do this in .NET Core RTM is setting copyToOutput in project.json's buildOptions section:

Change your project.json from this:

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

  // more stuff
}

...to this:

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

  // more stuff
}
Angus answered 3/8, 2016 at 14:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.