NETMF / netmf-interpreter

.NET Micro Framework Interpreter
http://netmf.github.io/netmf-interpreter/
Other
487 stars 224 forks source link

Visual Studio 2017 #538

Open matheusssilva opened 7 years ago

matheusssilva commented 7 years ago

Is there a forecast to add support for visual studio 2017?

Glober777 commented 7 years ago

I'm interested in that as well

nilssonm commented 7 years ago

+1

techcap commented 7 years ago

👍

nteamo commented 7 years ago

+1

Orlys commented 7 years ago

+1 , I bought the Netduino3-wifi few days ago , but idk how to use it in my visual studio 2017 , Is anyone have same problem ?

networkfusion commented 7 years ago

Use VS2015 or follow progress at GitHub.com/nanoframework not much has been going on here for a long time...

miloush commented 7 years ago

Alright, there is still a thing or two I wanted to sort out but you can use https://github.com/miloush/netmf-interpreter/tree/VS15.3 which builds on and for Visual Studio 2017. Building requires 15.3 (26510.0-Preview works) and unlike previously, you need to run the build_sdk.cmd from the developer command prompt (ensure the respective instance has Desktop development with C++, .NET desktop development and Visual Studio extension development workloads installed). This is a 4.4 version based on dev branch.

Tridy commented 7 years ago

Have the VS2017 - 15.3 (26510.0-Preview) installed with the components:

got the latest dev source: Latest commit 03d84fe on Sep 6, 2016

extracted netmf-interpreter-VS15.3 folder into c:\Build ran powershell scripts:

then i run build_sdk.cmd but get errors: build.zip

what am I missing?

thanks

miloush commented 7 years ago

Crypto libraries! https://github.com/NETMF/netmf-interpreter/releases/download/NETMFCryptoLibraries/NetMFCryptoLibs.msi

Instructions: https://github.com/NETMF/netmf-interpreter/releases

Also note that this commit will not build on 26510.0, get https://github.com/miloush/netmf-interpreter/commit/6a3d134c4ce178da6dc4a89c033aa8ef29597e32 (i.e. you need to use the VS15.3 branch)

Tridy commented 7 years ago

Thanks! It worked.

After that, installed the vsix from \BuildOutput\Public\Release\Server\dll\NetmfVS15.vsix As a result, it is possible to create a new Micro Framework project.

netmfvs15 vsix

Next step to see how to make it work with Netduino 3.

miloush commented 7 years ago

Note that if you haven't installed the MF SDK, you need to go to BuildOutput\Public\Release\Server\msm and install the msi, otherwise the projects won't compile. :-)

Tridy commented 7 years ago

I see.

So, after a successful build, there are 2 files to install for VS to work:

I think the official 4.4 version from Oct 20, 2015 that I had already installed MicroFrameworkSDK.MSI worked as well, but I uninstalled it and installed the one from my local build instead, just to make sure.

Thanks!

Tridy commented 7 years ago

I got the framework, SDK and Templates working in VS2017. The problem now is that when I try to deploy to my Netduino 3 WiFi, it says:

Severity Code Description Project File Line Suppression State Error Cannot deploy the base assembly 'mscorlib', or any of his satellite assemblies, to device - USB:Netduino twice. Assembly 'mscorlib' on the device has version 4.3.1.0, while the program is trying to deploy version 4.4.0.0

which, as far as I understand, means that the firmware on the board has framework 4.3.1.0 and I am trying to deploy for 4.4.0.0

Could someone help m with compiling the new firmware based on framework 4.4 for my Netduino 3 WiFi? Any hints?

Thanks!

techcap commented 7 years ago

I think you installed SDK v4.3.1. Uninstall it and install SDK v4.4

Tridy commented 7 years ago

Netduino firmware is framework specific. So, the application framework version must match the firmware version. I cannot deploy a framework to the device directly. I need to recompile and deploy the firmware with the matching one. Otherwise I get this:

micro_4_4

so, I need some help with recompiling the firmware

thanks!

miloush commented 7 years ago

It might be easier to get the MF 4.3 up and running in VS. Have you tried to install the 4.3 MF SDK? Fingers crossed it might give you the ability to switch to 4.3 target framework in the project properties while still using the existing 15.3 VS template.

Tridy commented 7 years ago

good idea, but that did not go that well. i needed to tweak the proj file a bit but in the end, targeting 4.3 would not allow having any references:

vsn

it seems like Netduino site has been on hold for the last year or so, including the community. It might be so that wildernesslabs could pick it up some time soon.

miloush commented 7 years ago

OK so I am not sure what you have tried, but what the 4.3 SDK installs into C:\Program Files (x86)\MSBuild.NET Micro Framework\v4.3 must go into C:\Program Files (x86)\Microsoft Visual Studio\[your VS 2017 instance]\Community\MSBuild\Microsoft.NET Micro Framework. Do you have that? Otherwise the libraries should be working, they are referenced all at HKLM\Software\WOW6432Node\Microsoft\.NETMicroFramework

Tridy commented 7 years ago

I see. The registry settings registry_settings.zip for both 4.3 and 4.4 are poining to the libraries in C:\Program Files (x86)\Microsoft .NET Micro Framework\

I also copied the v4.3 from that folder into:

c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft.NET Micro Framework\v4.3\

the thing now is that I can create a 4.4 project:

4 4

but I cannot change it to 4.3:

4 3

I have both 4.3 and 4.4 installed:

framework_sdk

but when trying to use 4.3 in VS 2017 it says

The reference assemblies for framework ".NETFramework,Version=v4.3" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. MFConsoleApplication1

Somehow VS2017 cannot see it.

I tried to reinstall 4.3 SDK but get the same problem.

What am I missing?

Thanks!

miloush commented 7 years ago

Not sure, I will have to try this. You said you had to tweak the project file a bit, what did you do?

doingnz commented 7 years ago

To use 4.4 you need 4.4 firmware inside the device. Do you have access to the custom firmware source for the HW Netduino 3 WiFi to rebuild it?

I did not see anything suitable here: http://www.netduino.com/downloads/ . If you don't have the specific solution files needed for the HW Netduino 3 WiFi, then you need to port one of the existing solutions to that HW. (CPU and peripheral drivers needed as per the HW)

Otherwise you need to use NetMF 4.3 and the SDKs as available here: http://www.netduino.com/downloads/

hope this helps.

Tridy commented 7 years ago

in the project, replace the imports:

<Import Project="$(NetMfTargetsBaseDir)$(TargetFrameworkVersion)\CSharp.Targets" /> with `

`

I found this difference with the new 4.4 project, so I copied that into 4.3 project and it seems to open but the rest I described in the previous posting.

It seems indeed, that I should make VS 2017 work with 4.3 instead of going for 4.4, since that is the on the device.

doingnz commented 7 years ago

maybe ask if anyone has progressed the code as discussed here:

http://forums.netduino.com/index.php?/topic/11796-from-build-2015-netduino-3-net-mf-44-universal-windows-platform-api-convergence-and-alljoyn/

miloush commented 7 years ago

Hmm it seems to work for me. I created 4.4 project as you did, got the same error, copied 4.3 targets to the VS folder, tried to add some references and it has built and run (in the emulator).

Your VSIX installer shows 2 instances of VS, are you sure you copied the 4.3 targets to the right instance?

Tridy commented 7 years ago

I have both the RTM and Preview instances of 2017 installed. I will remove the RTM and stay just with the Preview and start over with the process,

miloush commented 7 years ago

not sure that is necessary, you can copy the targets to both :)

Tridy commented 7 years ago

I uninstalled both in the end and installed just the preview, including the 3 components mentioned before.

it was actually a newer preview (good timing, right?) with version 26606.0 that was installed. The installation folder changed as well

from: c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\ to: c:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\

i cleaned up the folders, copied the source again and tried to build. This time I am getting some red text, including: C:\Build\NETMF\netmf\Framework\CorDebug\VsPackage.cs(174,22): error CS1748: Cannot find the interop type that matches the embedded interop type 'Microsoft.VisualStudio.Shell.Interop.IVsToolboxItemProvider2'. Are you missing an assembly reference? [C:\Build\NETMF\netmf\Framework\CorDebug\vs15\CorDebugvs15.csproj]

miloush commented 7 years ago

I have not tried building on this build but have you checked the VS SDK workload?

Tridy commented 7 years ago

Here is a full log of the build: build2.zip.

VS SDK Workload, is it this page you are talking about? I do not think it was updated for the latest build. Could I ask what do I do with the version and dependency type info that I find there?

Thanks.

miloush commented 7 years ago

I just meant whether you did not forgot to install it when you reinstalled the VS (i.e. you checked managed development, native development and VS SDK in the installer), but the log suggests the problem is a bit different. Could you share the sdkpre.log?

Tridy commented 7 years ago

Here it comes: sdkpre.zip

miloush commented 7 years ago

I confirm I reproduced the error in the recent VS build, that's the risk when targeting pre-releases! Investigating.

miloush commented 7 years ago

Yep, there were changes. Try this one :) https://github.com/miloush/netmf-interpreter/commit/f150247e030b83809086c5340ecd0dd7346e2e87

You will have to delete the BuildOutput directory and build again.

Tridy commented 7 years ago

tried it, got some errors. log3.zip have I missed something?

miloush commented 7 years ago

Well that build looks very broken... looks like you are missing the tools in the parent directory?

Tridy commented 7 years ago

I do have the tools in: C:\Build\NETMF\tools\x86 and the cmd is: c:\Build\NETMF\netmf\build_sdk.cmd

I tried to run it a couple more times and I get the same error.

when I look at the first error part of the log, I see:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\VSSDK\Microsoft.VsSDK.targets(961,5): error VSSDK1028: Can
not find the tools for VS SDK. [C:\Build\NETMF\netmf\Framework\CorDebug\vs14\CorDebugvs14.csproj]
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\VSSDK\Microsoft.VsSDK.targets(961,5): error MSB4018: The "C
reatePkgDef" task failed unexpectedly.\r [C:\Build\NETMF\netmf\Framework\CorDebug\vs14\CorDebugvs14.csproj]
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\VSSDK\Microsoft.VsSDK.targets(961,5): error MSB4018: System
.InvalidOperationException: Cannot start process because a file name has not been provided.\r [C:\Build\NETMF\netmf\Fra
mework\CorDebug\vs14\CorDebugvs14.csproj]

Could it be caused by CorDebug\vs14\ and not CorDebug\vs15\ being used there?

miloush commented 7 years ago

The build process tries to build SDK with every VS installed. It looks like you have Visual Studio 2015 installed but not the SDK. However, that shouldn't matter to you if you are interested in 2017 output only.

The first error I have seen in your logfile above is

C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\MSBuild\15.0\bin\Microsoft.Common.CurrentVersion.targets(1978,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "CODESIGN.Submitter". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [C:\Build\NETMF\netmf\Framework\Tools\BuildTasksInternal\BuildSigner\BuildSignerSpotBuild.csproj]
BuildSigner.cs(7,7): error CS0246: The type or namespace name 'CODESIGN' could not be found (are you missing a using directive or an assembly reference?) [C:\Build\NETMF\netmf\Framework\Tools\BuildTasksInternal\BuildSigner\BuildSignerSpotBuild.csproj]

Which should be pointing to C:\Build\NETMF\tools\x86\CODESIGN\CODESIGN.Submitter.dll. If you have the file there, it means the $(SPOROOT) variable is not pointing at C:\Build\NETMF.

When you run the build_sdk and then list the variables with set command, do you have SPOROOT there?

I am a bit puzzled that you have built it before without problems.

Tridy commented 7 years ago

codesign_folder

SPOROOT=C:\Build\NETMF

set_variables.txt

note that I stopped the execution after the first red line with errors appeared (just in case if some of the variables are reassigned to different values in the process)

miloush commented 7 years ago

Oh well, that's strange indeed. I guess the sdkpre log needs to be checked why it can't find it then. (Also I don't get any of the nuget warnings...)

Tridy commented 7 years ago

Here it comes.

248 Warning(s)
16 Error(s)

Time Elapsed 00:09:24.05

sdkpre.zip

miloush commented 7 years ago

Oh so you don't have the CODESIGN problem anymore. Before starting the build, can you set VSSDK14INSTALLDIR= and see how it goes?

Tridy commented 7 years ago

I tried it, still got the error.

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\VSSDK\Microsoft.VsSDK.targets(961,5): error VSSDK1028: Can
not find the tools for VS SDK. [C:\Build\NETMF\netmf\Framework\CorDebug\vs14\CorDebugvs14.csproj]
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\VSSDK\Microsoft.VsSDK.targets(961,5): error MSB4018: The "C
reatePkgDef" task failed unexpectedly.\r [C:\Build\NETMF\netmf\Framework\CorDebug\vs14\CorDebugvs14.csproj]
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\VSSDK\Microsoft.VsSDK.targets(961,5): error MSB4018: System
.InvalidOperationException: Cannot start process because a file name has not been provided.\r [C:\Build\NETMF\netmf\Fra
mework\CorDebug\vs14\CorDebugvs14.csproj]

sdkpre.zip

I don't really get why I get this VS SDK problem.

I have 2015 installed to see if everything is actually working as expected in 2015. And it does.

miloush commented 7 years ago

I don't get it either. What I don't get is that it tries to build the CorDebugvs14 which it only should do if there is VS 2015 SDK, see Support\FrameworkBase\dotnetmf.proj. but then it doesn't seem to find it. I will probably have to setup a machine with both VS 2015 and VS 2017 and try to repro. Meanwhile you could leave only the CorDebugvs15.csproj reference in that dotnetmf.proj if it helps. Of course, if you get the same errors for CorDebugvs15, it would indicate that the SDK install of VS 2017 is broken somehow.

Tridy commented 7 years ago

yes, keeping only a reference to 15 in \Support\frameworkbase\dotNetMF.proj allowed it to build.

I will dig further into 4.3 vs 4.4 in 2017 for Netduino this week.

Thanks a lot for your help!

valoni commented 7 years ago

did anyone manage and created VISX for VS2017 for use of .NET MF 4.3.x /4.4.x

KiwiBryn commented 7 years ago

Hi

Just about got it working (see attached picture) need to build VM with VS2K17 for testing

Bryn

From: Valon M Hoti [mailto:notifications@github.com] Sent: Thursday, 27 July 2017 4:16 AM To: NETMF/netmf-interpreter netmf-interpreter@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: Re: [NETMF/netmf-interpreter] Visual Studio 2017 (#538)

did anyone manage and created VISX for VS2017 for use of .NET MF 4.3.x /4.4.x

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/NETMF/netmf-interpreter/issues/538#issuecomment-318104320, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AMP0uVAZXlaihaLZ51VxRM7zgHpqNFgMks5sR2YrgaJpZM4MYF1I.

Tridy commented 7 years ago

I switched to TinyCLR from GHI Elecronics. I think they are doing a great job at unifying many devices under one OS. I tried it and it seems to works great in VS 2017 with my Netduino 3 WiFi.

https://www.ghielectronics.com/news#24580

https://github.com/ghi-electronics/Docs

doingnz commented 7 years ago

@Tridy, the question is about getting VS2017 support working for NetMF, an open source project. Proposing a closed source commercial alternative is not going to get the job done.

valoni commented 7 years ago

Why not having both in VS2017 (Net MF 4.4 and TinyCLROS)

Instead to install two visual studio (2015 and 2017) for development for both frameworks

To use

networkfusion commented 7 years ago

As I have previously said, nanoframework is worth a look. It has vs2017 support and is completely open source. The more people contribute the quicker it will become mature.