Azure / usql

U-SQL Examples and Issue Tracking
http://usql.io
MIT License
232 stars 683 forks source link

U-sql referenced assembly built with 4.5.1? Whereas documented 4.5 is needed #141

Open AlexKeySmith opened 5 years ago

AlexKeySmith commented 5 years ago

It's documented that U-SQL uses .net 4.5

https://docs.microsoft.com/en-us/azure/data-lake-analytics/data-lake-analytics-u-sql-programmability-guide#use-assembly-versioning

So to ensure that our own custom assemblies are built to that runtime.

When creating a "Class Library (For U-SQL Application)" via Azure Data Lake And Stream Analytics Tools version 2.3.4000.3 it's set to build to .net 4.5 which is fine, but it appears to be referencing e.g. Microsoft.Analytics.Interfaces which is built to 4.5.2 and fails to load.

I'm using Visual Studio 15.8.0, it feels like because it's from a general visual studio folder that it's been upgraded unbeknown to u-sql.

Severity Code Description Project File Line Suppression State Warning The primary reference "Microsoft.Analytics.Interfaces" could not be resolved because it was built against the ".NETFramework,Version=v4.5.2" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.5". MYUDFNAMEHERE C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets 2110

(Originally posted here, but cross posting in case it's a bug / edge case with recent visual studio updates https://stackoverflow.com/questions/51878732/u-sql-referenced-assembly-built-with-4-5-1-whereas-documented-4-5-is-needed)

AlexKeySmith commented 5 years ago

I've added a workaround to the stackoverflow post if anyone's interested. https://stackoverflow.com/a/51879203/141022

ronnieoverby commented 5 years ago

The best solution for me was to open the project file and modify the target framework version.

I'm not quite sure why Microsoft's U-SQL project templates are in such disarray.

MikeRys commented 5 years ago

I think the main reason is that many people when contributing to the projects use what is on their machines and don’t pay attention. Currently the official version on the clusters is 4.5.2 if I remember correctly.

Did you run into issues with using 4.5.1 versions?

From: Ronnie Overby notifications@github.com Sent: Tuesday, February 26, 2019 7:54 PM To: Azure/usql usql@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: Re: [Azure/usql] U-sql referenced assembly built with 4.5.1? Whereas documented 4.5 is needed (#141)

The best solution for me was to open the project file and modify the target framework version.

I'm not quite sure why Microsoft's U-SQL project templates are in such disarray.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fusql%2Fissues%2F141%23issuecomment-467714075&data=02%7C01%7Cmrys%40microsoft.com%7C7d6ca7afbcdc43c5533208d69c6743e4%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636868364665957721&sdata=kd1QJD%2BADTNftqsNYFkTO%2FBktHfBaDJvdV3PpyMkkf4%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALNzJAQ2XnR1-Nonms3Ze9yy9O3XNehXks5vRgFwgaJpZM4V_62O&data=02%7C01%7Cmrys%40microsoft.com%7C7d6ca7afbcdc43c5533208d69c6743e4%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636868364665967729&sdata=6FRhENuLBmkAnyqtLc7gZsPBtHf8KcDp0v%2FH5CMUzCo%3D&reserved=0.

ronnieoverby commented 5 years ago

For me, file... new project.. fails to build out of the gate.

On Wed, Feb 27, 2019, 3:25 PM Michael Rys notifications@github.com wrote:

I think the main reason is that many people when contributing to the projects use what is on their machines and don’t pay attention. Currently the official version on the clusters is 4.5.2 if I remember correctly.

Did you run into issues with using 4.5.1 versions?

From: Ronnie Overby notifications@github.com Sent: Tuesday, February 26, 2019 7:54 PM To: Azure/usql usql@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: Re: [Azure/usql] U-sql referenced assembly built with 4.5.1? Whereas documented 4.5 is needed (#141)

The best solution for me was to open the project file and modify the target framework version.

I'm not quite sure why Microsoft's U-SQL project templates are in such disarray.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub< https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fusql%2Fissues%2F141%23issuecomment-467714075&data=02%7C01%7Cmrys%40microsoft.com%7C7d6ca7afbcdc43c5533208d69c6743e4%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636868364665957721&sdata=kd1QJD%2BADTNftqsNYFkTO%2FBktHfBaDJvdV3PpyMkkf4%3D&reserved=0>, or mute the thread< https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALNzJAQ2XnR1-Nonms3Ze9yy9O3XNehXks5vRgFwgaJpZM4V_62O&data=02%7C01%7Cmrys%40microsoft.com%7C7d6ca7afbcdc43c5533208d69c6743e4%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636868364665967729&sdata=6FRhENuLBmkAnyqtLc7gZsPBtHf8KcDp0v%2FH5CMUzCo%3D&reserved=0>.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Azure/usql/issues/141#issuecomment-468016894, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGKpAQXmOzqA5Gd2f_GAAD6h624XcFfks5vRunVgaJpZM4V_62O .

MikeRys commented 5 years ago

You create a new U-SQL project in VStudio? And reference an assembly deployed to ADLA that was compiled for .NET Framework 4.5.1? What is the project targeting after creating it? Which version do you have on your local machine? And do you get the error when running the script locally or when submitting to the cluster?

Thanks Michael

From: Ronnie Overby notifications@github.com Sent: Wednesday, February 27, 2019 12:29 PM To: Azure/usql usql@noreply.github.com Cc: Michael Rys mrys@microsoft.com; Comment comment@noreply.github.com Subject: Re: [Azure/usql] U-sql referenced assembly built with 4.5.1? Whereas documented 4.5 is needed (#141)

For me, file... new project.. fails to build out of the gate.

On Wed, Feb 27, 2019, 3:25 PM Michael Rys notifications@github.com<mailto:notifications@github.com> wrote:

I think the main reason is that many people when contributing to the projects use what is on their machines and don’t pay attention. Currently the official version on the clusters is 4.5.2 if I remember correctly.

Did you run into issues with using 4.5.1 versions?

From: Ronnie Overby notifications@github.com<mailto:notifications@github.com> Sent: Tuesday, February 26, 2019 7:54 PM To: Azure/usql usql@noreply.github.com<mailto:usql@noreply.github.com> Cc: Subscribed subscribed@noreply.github.com<mailto:subscribed@noreply.github.com> Subject: Re: [Azure/usql] U-sql referenced assembly built with 4.5.1? Whereas documented 4.5 is needed (#141)

The best solution for me was to open the project file and modify the target framework version.

I'm not quite sure why Microsoft's U-SQL project templates are in such disarray.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub< https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fusql%2Fissues%2F141%23issuecomment-467714075&data=02%7C01%7Cmrys%40microsoft.com%7C7d6ca7afbcdc43c5533208d69c6743e4%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636868364665957721&sdata=kd1QJD%2BADTNftqsNYFkTO%2FBktHfBaDJvdV3PpyMkkf4%3D&reserved=0>, or mute the thread< https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALNzJAQ2XnR1-Nonms3Ze9yy9O3XNehXks5vRgFwgaJpZM4V_62O&data=02%7C01%7Cmrys%40microsoft.com%7C7d6ca7afbcdc43c5533208d69c6743e4%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636868364665967729&sdata=6FRhENuLBmkAnyqtLc7gZsPBtHf8KcDp0v%2FH5CMUzCo%3D&reserved=0>.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Azure/usql/issues/141#issuecomment-468016894, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGKpAQXmOzqA5Gd2f_GAAD6h624XcFfks5vRunVgaJpZM4V_62O .

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fusql%2Fissues%2F141%23issuecomment-468017797&data=02%7C01%7Cmrys%40microsoft.com%7C567f063dfb604f4f4fb608d69cf22f6e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636868961329485690&sdata=fV%2FoLSUCiKwlyQXKrMMzVE%2FdVOa5dyZtZotN%2BATaIwg%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALNzJKHVYdG9139WNzEZNwcHSgbqV4Mvks5vRuqCgaJpZM4V_62O&data=02%7C01%7Cmrys%40microsoft.com%7C567f063dfb604f4f4fb608d69cf22f6e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636868961329495694&sdata=R7XNAjVwLEdRsQ%2BuJs%2B0EkfyX4v14UeAckstGw9pLMk%3D&reserved=0.

ronnieoverby commented 5 years ago

For me...

VS 2017 15.9.7 Data Lake Tools 2.3.7000.1

Creating a brand new USQL class library project gives you a project that targets net45 but references assemblies targetting net452. It fails to build.

Updating the class library to target net452 causes the build to succeed, but any USQL / USQL Database projects using the class library project will fail to build.

The solution for me was to open USQL/USQL Database project in editor and change target framework version from NET45 to NET452.

The big question I have is, why do all of these projects target NET45 in the latest tools, when the infrastructure on Azure is running net452?

And why does the ClassLib project template reference NET452 assemblies when it itself doesn't target NET452?

MikeRys commented 5 years ago

Thanks for the details. I will be asking our ADL Tool team to take a look and answer your question.

From: Ronnie Overby notifications@github.com Sent: Wednesday, February 27, 2019 1:28 PM To: Azure/usql usql@noreply.github.com Cc: Michael Rys mrys@microsoft.com; Comment comment@noreply.github.com Subject: Re: [Azure/usql] U-sql referenced assembly built with 4.5.1? Whereas documented 4.5 is needed (#141)

For me...

VS 2017 15.9.7 Data Lake Tools 2.3.7000.1

Creating a brand new USQL class library project gives you a project that targets net45 but references assemblies targetting net452. It fails to build.

Updating the class library to target net452 causes the build to succeed, but any USQL / USQL Database projects using the class library project will fail to build.

The solution for me was to open USQL/USQL Database project in editor and change target framework version from NET45 to NET452.

The big question I have is, why do all of these projects target NET45 in the latest tools, when the infrastructure on Azure is runninget net452?

And why does the ClassLib project template reference NET452 assemblies when it itself doesn't target NET452?

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fusql%2Fissues%2F141%23issuecomment-468037904&data=02%7C01%7Cmrys%40microsoft.com%7Cbb33d2ab315a43718b7c08d69cfa81e8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636868997143349921&sdata=kMqFa0Qet9LSKPqmvi3vFgAqjjPhxnFOK0mo7DU%2F9FY%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALNzJObx0rw-hh2hDVcHGvETlJ1pfs1Gks5vRvh5gaJpZM4V_62O&data=02%7C01%7Cmrys%40microsoft.com%7Cbb33d2ab315a43718b7c08d69cfa81e8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636868997143359930&sdata=eSJ2nTN7Kt4VaKlJwKkDkzzkmtAnQOg4cP9mPfA8TsM%3D&reserved=0.

ronnieoverby commented 5 years ago

You're welcome.

By the way, I just spent a sprint evaluating U-SQL.

I have a fairly large list of reasons I'm recommending we avoid it for now, much of which has to do with frustrating tooling in visual studio.

If you are interested in some constructive criticism I'm happy to help.

MikeRys commented 5 years ago

Thanks… I would be interested in hearing your reasons. Can you please forward it to usql at microsoft dot com? I will share it with the team.

From: Ronnie Overby notifications@github.com Sent: Wednesday, February 27, 2019 1:47 PM To: Azure/usql usql@noreply.github.com Cc: Michael Rys mrys@microsoft.com; Comment comment@noreply.github.com Subject: Re: [Azure/usql] U-sql referenced assembly built with 4.5.1? Whereas documented 4.5 is needed (#141)

You're welcome.

By the way, I just spent a sprint evaluating U-SQL.

I have a fairly large list of reasons I'm recommending we avoid it for now, much of which has to do with frustrating tooling in visual studio.

If you are interested in some constructive criticism I'm happy to help.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fusql%2Fissues%2F141%23issuecomment-468043649&data=02%7C01%7Cmrys%40microsoft.com%7C999203c083e741365f6808d69cfd1623%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636869008145579815&sdata=dcVM87cF6Tr8u1E7ixRUYx%2B%2BLdsQvhs7u46qqxeZTwM%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALNzJHnYPvfLWf556s1NuztJLcIGojszks5vRvzNgaJpZM4V_62O&data=02%7C01%7Cmrys%40microsoft.com%7C999203c083e741365f6808d69cfd1623%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636869008145589823&sdata=IpvHk2CcI99dxT%2B7dRnSKZLvpQMWuaxfbudEtiH7o6M%3D&reserved=0.

ronnieoverby commented 5 years ago

Happy to. I'll edit my findings for your team and send within a day or two.

ronnieoverby commented 5 years ago

Sent.