Build ASP.NET 4.5 without Visual Studio on Build Server

asp.netMsbuildVisual Studio-2012asp.net 4.5Build Server

asp.net Problem Overview


Its been a while since I setup a Build Server so maybe I've forgotten something or maybe .NET 4.5 is different from whatever version I did this with last time, but here is my problem.

I'm trying to setup a build server to monitor a source control repository. Whenever something changes, I want the server to pull the changes and build the project. If there are no errors, I want to deploy the site to a web site running on the build server.

In the past when I did this, I thought that I was able to do this having only .NET installed, but when I try to build this project I get an error that "C:\Program Files\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" is missing, and if I go and look I can see that it is missing. In fact there are no Visual Studio 11 targets files.

After a lot of thought and head scratching, I went out and got the "Windows 8/.NET 4.5 SDK" thinking that the .NET 4.5 SDK might install the targets files that I needed, but it did not unless I installed it wrong somehow.

So, what do I need to put on the Build Server in order to get the project to build. I would prefer not to have to install the full Visual Studio 2012.

asp.net Solutions


Solution 1 - asp.net

To run on on your CI server without Visual Studio, you only need to copy a few folders from a development machine to the same location on the CI server. There is no need to install the SDK.

VS 2015:

  • C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web
  • C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications

VS 2013:

  • C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web
  • C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications

VS 2012:

  • C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web
  • C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications

VS 2010:

  • C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web
  • C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications

.NET 4.6:

  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6

.NET 4.5.2:

  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2

.NET 4.5.1:

  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1

.NET 4.5:

  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5

.NET 4.0.1:

  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0.1

.NET 4.0:

  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0

Or, as Matt suggested, you could copy them into a subdirectory of your project and alter the <MSBuildExtensionsPath32> location in your MSBuild (typically .csproj or .vbproj) file.

Once you have done this, your project will compile.

You should also set the VisualStudioVersion environment variable explicitly to the Visual Studio version (10.0 for VS2010, 11.0 for VS2012, 12.0 for VS2013, 14.0 for VS2015) you are using just to be sure it is set right in your configuration.

Solution 2 - asp.net

My problem was related to installing the Windows Software Development Kit (SDK) for Windows 8 on a Windows 2008 Box. If you read further on the page, you will get to a heading labeled ".NET Framework 4.5 SDK Tools on Windows Vista and Windows Server 2008." This tells you to:

  1. Run the Windows SDK for Windows 8 installer on a supported operating system (for example, Windows 7, or Windows 8).
  2. Choose the following option on the Specify Location screen: Download the Windows SDK for installation on a separate computer.
  3. Press the Next button.
  4. Answer the questions on the Join the Customer Experience Improvement Program (CEIP) screen.
  5. On the next screen, choose the .NET Framework 4.5 Software Development Kit feature. Unselect all other features that can be unselected.
  6. Choose the Download button.
  7. Go to the download location (specified in step 2) and find the following .NET Framework 4.5 SDK tool installer files: sdk_tools4.msi, sdk_tools4.cab
  8. You can copy these files to a Windows Vista or Windows 2008 Server computer within your organization. These files need to be copied to same directory on the Windows Vista or Windows 2008 Server computer. Note: Do not redistribute these files outside your organization or as part of any other installer.
  9. On the Windows Vista or Windows 2008 Server computer, review the license terms here .
  10. Check whether .NET Framework 4.5 is already installed on the computer. Otherwise, download and install .NET Framework 4.5 from www.microsoft.com .
  11. Open a command prompt with administrator privileges.
  12. Go to the directory where .NET Framework 4.5 SDK Tools installer files were copied.
  13. Install .NET Framework 4.5 SDK tools by using the command line: Msiexec /i sdk_tools4.msi VSEXTUI=1

Solution 3 - asp.net

From msdn:

> The Windows SDK no longer ships with a complete command-line build environment. You must install a compiler and build environment separately. If you require a complete development environment that includes compilers and a build environment, you can download Visual Studio 2012 Express, which includes the appropriate components of the Windows SDK.

In order to fix this, I had to copy the folder C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5 from my development machine (which has Visual Studio 2012 by the way) onto the build agents. After this operation, Team City did not report any more errors and mscorlib.dll was not output to the bin folder.

Solution 4 - asp.net

Microsoft Build Tools 2013 will help in this case, as its download page describes:

> If you don't have Visual Studio installed on your computer, you can > use Build Tools 2013 to build managed applications. The Visual Basic > and C# compilers are also included in this download. (In earlier > versions, these tools were included in the stand-alone .NET > Framework.)

Solution 5 - asp.net

My dept. likes taking a minimalistic approach to what's installed on our Win 7 build machines. However, we don't like just copying and pasting files/folders because of potential registry key issues. Instead of installing VS 2013, I installed the following much smaller and free components. Now the dev team can build VS 2013 web apps successfully.

Solution 6 - asp.net

I solve this problem with Visual Studio Agents.

You can try install Visual Studio Agents 2012.

http://www.microsoft.com/en-us/download/details.aspx?id=38186

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionZackView Question on Stackoverflow
Solution 1 - asp.netNightOwl888View Answer on Stackoverflow
Solution 2 - asp.netSwampyFoxView Answer on Stackoverflow
Solution 3 - asp.netMariusView Answer on Stackoverflow
Solution 4 - asp.netRajeshView Answer on Stackoverflow
Solution 5 - asp.netckkkittyView Answer on Stackoverflow
Solution 6 - asp.netJeanView Answer on Stackoverflow