Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to reference csproj from kproj

Tags:

I was playing around with VS2015 and ASP.NET vNext, and got stuck on trying to add a reference from vNext class library (kproj) to a regular class library (csproj) in the same solution. Visual Studio 2015 shows the following error message:

"The following projects are not supported as references".

Is it possible at all to add references to csproj from vNext class libraries?

like image 359
En Ua Avatar asked Nov 19 '14 15:11

En Ua


2 Answers

Note: The kpm command has been replaced by dnu.

Visual Studio 2015 Preview (as of writing this) comes with the ASP.NET 5 stable release beta1. In this version there is no way to reference a csproj project from an ASP.NET 5 project.

However, on the development feed of ASP.NET 5 the command kpm wrap was introduced to support referencing csproj-projects from ASP.NET 5 projects. See the github issue #827 in the aspnet/KRuntime repository and pull request #875 which closes the issue.

Here is an example how you would use kpm wrap:

Make sure the newest version of the KRuntime is installed (check this with the kvm list command) (I tested this with version 1.0.0-beta2-10709).

Create an ASP.NET 5 class library project, I used the name ClassLibrary1.

Create a "normal" csproj class library, I named this ClassLibrary2 (make sure you put this in the src folder).

From the commandline, from the solutiondirectory run the command

kpm wrap .\src\ClassLibrary2

This gives the output:

Wrapping project 'ClassLibrary2' for '.NETFramework,Version=v4.5'
 Source C:\Users\andersns\Source\ClassLibrary1\src\ClassLibrary2\ClassLibrary2.csproj
   Target C:\Users\andersns\Source\ClassLibrary1\wrap\ClassLibrary2\project.json
   Adding bin paths for '.NETFramework,Version=v4.5'
     Assembly: ../../src/ClassLibrary2/obj/debug/ClassLibrary2.dll
     Pdb: ../../src/ClassLibrary2/obj/debug/ClassLibrary2.pdb

Now in the project.json of ClassLibrary1 (which is ASP.NET 5) you can add a reference to ClassLibrary2 with this:

...
"dependencies": {
    "ClassLibrary2": ""
},
...

Note: kpm wrap did not run properly for me with cmd, I needed to launch powershell to make it run.

like image 62
AndersNS Avatar answered Sep 23 '22 12:09

AndersNS


Starting with (Visual Studio 2015 RC) the kpm command has been replaced by dnu

The dnu command stands for (.NET Development Utility)

dnu wrap .\src\ClassLibrary2\ClassLibrary2.csproj

New ASP.NET Features and Fixes in Visual Studio 2015 RC http://blogs.msdn.com/b/webdev/archive/2015/04/29/new-asp-net-features-and-fixes-in-visual-studio-2015-rc.aspx

like image 34
Nathan Smith Avatar answered Sep 21 '22 12:09

Nathan Smith