Visual Studio 2017 Grunt tasks - visual-studio

I recently moved to VS2017 and, it turned out I cannot make Grunt tasks work. Node is installed along with Grunt packages, Grunt task is also defined, but Task Runner Explorer in Visual Studio doesn't see it (screenshot is attached):

Hmm... from the documentation for that plugin a known issue is: "Projects inside nested solution folders aren't supported yet". So, my guess is that you won't be able to use this in your current structure given the location of your Gruntfile.js. You could try to confirm this by placing that file in the project root directory.

I happened to have a Gruntfile.js in the parent folder of my projects: 'source', and VS reads it by default. I started using Grunt out of frustration with the WebCompiler extension that is now severely broken in VS2017, and doesn't show signs of being updated anytime soon. I just started using grunt outside of VS to compile my sass and bundle/minify my js, which can be frustrating for my other team members. Anyway, I noticed VS2017 automatically picks up that Gruntfile, even though it's not even in the solution folder for my project. For my non MS projects, that's how I have it set up, because I don't want that insane node-modules folder jungle to end up in my git repo. It's super frustrating that MS now wants us to use open source tools in our projects. Us modern front-end devs are in limbo with sass or scss precompilers.

Related

Package target doesn't include bin\x64 folder but VS2019 did

I think I have various beads on why this may be happening, but I can't quite put all the clues together.
We were building an ASP.NET app in VS 2019 with a nuget dependency (Microsoft.Data.SqlClient.SNI.1.0.19235.1 if it matters). I've used msbuild -t:package and in VS 2019, it would spit out bin\x86 and bin\x64 folders with the DLL from that nuget package. That package step would spit out a zip file and opening that up you can see the x86/x64 folders in there.
We upgraded to VS 2022 and the CPU arch folders are no longer there. I can see them get created in the working directory, but not in the package output.
Nothing in the project has changed. It's set to target "AnyCPU" and Framework 4.6.2. The command we're using to build hasn't changed either. As far as I can tell, it's just the upgrade to VS 2022.
I know VS 2022 is now 64-bit native, so I have a suspicion that's in play here. Any ideas on why those CPU-architecture folders are no longer included in the zip package? And how to get them back in there?
Thanks!
According to your description I make some test, hope it can help you:
Check your Configuration Manager under Build in the menu and add new Platform you need.
Build the project in Batch Build under Build in the menu.
We can see that .dll files are created in the same path so it will be covered.
Open the project file.(Right click on the project and Unload Project then right click again an choose edit project file)
You can see code like this:
Change the OutputPath to “bin\x64\Debug\”, ”bin\x64\Release\” and so on.
Reload the project and rebuild the project in Batch Build.
About how to Pack multiple platforms into one package you can see this(Pack multiple platforms into one package, using dotnet pack ).
If it helps anyone, since my problem was specifically with the SNI.dll not being emitted in the x64/x86 folders, my workaround solution was to upgrade the Microsoft.Data.* libraries to a newer version. The x64/x86 folders are still not emitted, but I now see Microsoft.Data.SqlClient.SNI.x64.dll and Microsoft.Data.SqlClient.SNI.x86.dll files in the root bin folder.
It doesn't answer the original question, but at least it got me moving.

Using gruntfile.js in Visual studio 2019 with SPA in the ClientApp subfolder

I have been following this guide to get gruntfile working with Task runner explorer in Visual studio: Use Grunt in ASP.NET Core.
If I have Grunt.js, package.json and node_modules all in the root directory of the webapp project then this all works fine without an issue.
But when generating an SPA in either react or angular from the template provided with Visual studio, it places the SPA within the ClientApp subfolder, meaning my package.json and node_modules are in /ClientApp.
If I place the Gruntfile.js in /ClientApp then Visual studio / task runner explorer does not find it, it only finds it if placed in the root directory.
If I place Gruntfile.js in the root directory then task runner explorer detects it, but upon trying to load grunfile.js I get an error saying "grunt hasn't been installed locally", this is because it is looking for grunt to be installed in /node_modules instead of /ClientApp/node_modules where it actually is.
I can solve the problem by placing another package.json at the root folder with only devDependencies set to grunt and related dependencies, but it is a really inelegant solution to have two instances of package.json and node_modules folders in my project, it will possibly create confusion among other developers in my team unless we clearly explain to everyone it's just a workaround to get grunt working with visual studio.
Is there a way to have only one copy of package.json and node_modules, both in /ClientApp and have grunt.js working with Visual studio? Visual studio's own template to create an SPA places the SPA under /ClientApp, so surely we must have a way to use grunt.js with that without having to make dirty hacks.

Visual Studio (Community 2019) throwing errors which should be warnings regardless of settings in one project only

A couple of weeks ago I cleared the NuGet cache in Visual Studio... this broke everything for some time as it would not automatically restore all the NuGet packages for some reason.
After a lot of effort and manually restoring stuff, I have now got most projects in my (quite large) solution working, except one.
I am in the process of moving most of my code from .NETFramework projects, to .NETStandard and the websites to .NETCore, that in itself is a headache and may/may not be related to the problem, but I don't think so.
Anyway, this one project, which is a .NETFramework (4.7.2) web application and references many other projects in my solution, will not build properly.
Each time I build it, I get thousands of stupid errors from MSBuild, see the screenshot (ignore the top 4,they are genuine!). These are all errors which should be warnings, or ignored.
In the Project settings page I do NOT have "treat all warnings as errors" checked - in fact, in an effort to fix this, I have turned warnings off altogether as well.
The weird thing is, that if I build every individual project in the solution first, usually twice, and then build this one with out touching anything else, it then will build and launch in IIS (or publish)
So the site is actually working but something is wrong in MSBuild or VS that is breaking it.
I have tried running a Visual Studio repair, but that made no difference either.
EDIT also, it only does it on one PC, if I load the same solution onto my laptop, it will all build fine.
And from some of the errors, if seems that the you should change the Assembly Name of the SAM project to Sam. It is quite strange. Not sure whether you have install some extra Code Analysis extensions on your current PC but other PCs works well.
So please try the following steps:
Steps
1) disable any third party installed vs extensions under Extensions-->Manage Extensions-->Installed
It needs a restart.
2) run update-package -reinstall under Tools-->Nuget Package Manager-->Package Manager Console
3) close VS, delete .vs hidden folder under the solution folder, every bin and obj folder of the projects under the solution.
Besides, you could use devenv /safemode to start a initial VS without any third party tools to test whether the issue happens.

Visual Studio constantly including protractor typings from npm module folder in the project file

My team and I are having a strange problem where although our node_modules folder is excluded from the project, the npm_modules\protractor\Typings folder keeps reincluding itself.
This wouldn't be a problem, we could live with it being there, but it not only does it include itself once, but every subsequent time it does it, it adds duplicate includes to the project file.
Is there anyway to absolutely force it to not include anything from that folder, or has anyone had a similar issue to this?
For anyone else finding this post, the issue is caused by NodeJS Tools for Visual Studio, and a bug with their Automatic Typings Acquisition.
https://github.com/Microsoft/nodejstools/wiki/Automatic-Typings-Acquisition
Issue is logged on GitHub here and has been fixed in Alpha 2.
https://github.com/Microsoft/nodejstools/issues/921

Typescript not installed in VS2012? [duplicate]

How do I start writing TypeScript projects in Visual Studio? There's no option for it when I create a new project. I have Visual Studio 2012 installed along with the TypeScript add on
I just found the solution: Manual installation of the VS-Extension.
In some way, the VS-Extension is not getting installed. You can do it manually. There is a .vsix file located in C:\Program Files (x86)\Microsoft SDKs\TypeScript\0.8.0.0 called TypeScriptLanguageService.vsix.
Try to run this file. It should install the TypeScript extension.
If you are running an x86-based system, try to look at C:\Program Files\Microsoft SDKs\TypeScript\0.8.0.0.
Worked for me. Now I can create TypeScript projects and it is listed in the Visual Studio extension list.
Note that the newer versions of TypeScript dropped the folder 0.8.0.0. You may find the .vsix file in C:\Program Files (x86)\Microsoft SDKs\TypeScript.
You can add TypeScript files to an existing project using the Add > New Item dialog.
You can also create a project of type HTML Application with TypeScript using the Add > New Project dialog. This project type is under Installed->(Templates)->Visual C#.
If these options are missing from Visual Studio, you should try re-installing the TypeScript Visual Studio plugin.
If you use Visual Studio 2017, the template 'HTML Application with TypeScript' has been removed from the templates.
But you can install the extension made by rich-newman on Github: https://github.com/rich-newman/typescript-html-application-vs2017-template
To install it do the following:
Go to the 'Add New Project' window
At the left go to 'online' in the left tree view
Search for 'TypeScript HTML Application Template'
Install the extension and the template should be available under 'installed --> TypeScript'
Followed the other answers but could not locate TypeScriptLanguageService.vsix after installing TypeScriptSetup.0.8.0.msi on Win7 64 w/ VS 2010.
To install on VS 2010, use 7zip to open the above msi and extract "TypeScriptLS.vsix_File", remove the trailing _File, and run as usual.
This gives a new TypeScript project template (but not a file template mysteriously), intellisense, code highlighting, etc.
I didn't have the project and ts file templates also, tried reinstalling it(just by running vsix file) that didn't help, so I
1. uninstalled(from the VS2012 manager) the extension
2. closed VS2012 and then installed it again and voila-
the Project and file template magically appeared. Thank god it worked- I can start playing with the language without having to run transcompilation manually every time.
Installing typescript adds a new project type as well as adds a file type for existing projects. After installing typescript, you can try searching "typescript" in the new project window. It shows "HTML Application with TypeScript" to me.
Every .ts file typescript file will add a dependent .js file.
Hope this helps!
Old post, new suggestion:
I've spent a few hours on this issue on Win8/VS2012. After multiple install/reinstall (of Typescript plugin v 0.8.3), the one thing that worked, was to run VS2012 in Administrator mode and (re)install Web Essentials 2012. That did the trick for me and I got Typescript as it's own section in Add New Project... (and all the other goodies mentioned above).
What reminded me of the run in admin mode was the process to update documentation (if you want to install documentation locally) where it too had an annoying cryptic error. Running in admin mode was also the answer.
You don't have to run in admin mode all the time, just probably a good practice when updating the IDE itself (new plugins, etc.).
For version 0.9.1.1 I was able to make it work following the instructions here: http://typescript.codeplex.com/wikipage?title=Compile-on-Save.
Support for Typescript was just disabled on Web Essentials 2012 3.0: http://vswebessentials.com/changelog
Another tip - you need to install Visual Studio for Web. It will not work with just VS for Desktop. Also, you need to install the plugin after VS, so if you installed the plugin first, uninstall it then reinstall.
I spent days on this issue too. Eventually found this (very old) answer. Didn't quite help. I have VS 2022 and under Extensions/ Manage Extensions, searched for Typescript and found 'Typescript HTML Application Template'. Downloaded it, created project from it, set the start page and it all seems to work :-)
It was also a simple matter to add a tsconfig.json file. (Not forgetting to put a "dom" in the "lib" line: Mine was
"lib": [ "es6", "dom" ],

Resources