Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

C# Building Services with ASP.NET Web API Building Our Service Adding Web API to a Project

[SOLVED] Code Challenge, Visual Studio 2019, and Gulp

I had some problems completing a code challenge for 'Building Services with ASP.NET Web API' and thought I would post my solution to hopefully save others some time.

In short, Visual Studio 2019 is not compatible with the version of Gulp (3.9.1) in the downloaded solution; and updating Gulp breaks the default task in gulpfile.js. So the fix is basically a two-step process: Update the three Gulp packages in package.json (so they're compatible with VS2019) and modify the default task in gulpfile.js (so it's compatible with Gulp 4). However, there are a few other pitfalls that I address below.

Note: You don't need to have Node.js installed for Gulp to do its thing in VS. I confirmed this by performing the steps below on a fresh copy of Windows and VS 2019 with only the 'ASP.Net and web development' workload installed.

Unzip and open the solution. In Solution Explorer, right click the solution, select 'Manage NuGet Packages For Solution', then click the 'Restore' button in the alert section.

IMPORTANT: Do NOT update any NuGet packages. Doing so will break a static reference in the project.msbuild XML file.

Try building the solution. If you receive errors, restart Visual Studio. The solution should then build without issue.

In IssueTracker > package.json, update 'devDependencies' to the latest versions using intellisense (restore preceding '^' if removed). Change the 'name' property to all lowercase and save the file.

Changing and saving the Gulp version numbers causes VS to download the updated packages. At the bottom, you'll see a colliding arrows progress indicator, then 'Installing packages complete' when finished.

After the Gulp package updates complete, open IssueTracker > gulpfile.js and replace the default task with the following code, then save the file.

gulp.task('default', gulp.series('nuget-restore', function (cb) {
    cb();
    return gulp.src('../../project.msbuild')
        .pipe(msbuild({
            stdout: true,
            targets: ['Start'],
            toolsVersion: 16,
            verbosity: 'minimal'
        }));
}));

Right-click IssueTracker > gulpfile.js and select Task Runner Explorer. Gulpfile.js should now show as loaded.

Complete the code challenge tasks (observing NuGet package versions) then build the solution.

In Task Runner Explorer, expand Gulpfile.js and Tasks. Right click 'default' and select 'Run'. If you missed anything, it will let you know in the task output.

If all went well, you'll see 'MSBuild complete!' and an uploadable project.zip file will be located in the root folder (which also contains README.md).

Good luck!

Hambone F
Hambone F
3,569 Points

I ultimately went through the same (lengthy!) process by google, trial, and error and wrote up a forum post on this exact same thing - and only after that saw yours!

I just wanted to say - thanks for sharing this!