Find the Best Cosmetic Hospitals

Explore trusted cosmetic hospitals and make a confident choice for your transformation.

“Invest in yourself — your confidence is always worth it.”

Explore Cosmetic Hospitals

Start your journey today — compare options in one place.

Fixing MSB4064 When Building VS2010 Web Solutions with NAnt

Originally published on 2010-03-09; fully revised and updated.

This article covers a legacy build issue that still appears in older enterprise codebases: a solution with web projects compiles in Visual Studio 2010, but fails from the command line through NAnt with Copy task errors. You will learn what is happening, why the temporary workaround does not hold, and how to align NAnt configuration with the installed .NET 4 runtime.

VS2010 web project compile issue from NAnt

Symptoms and error signature

In the reported case, the build succeeded in the IDE and failed from NAnt with these errors:

Error MSB4064: The "Retries" parameter is not supported by the "Copy" task.
Error MSB4063: The "Copy" task could not be initialized with its input parameter.Code language: JavaScript (javascript)

This pattern typically indicates that the command-line build is loading a different MSBuild/.NET toolchain than the one used by Visual Studio.

Why changing project files to 9.0 is only a temporary workaround

A workaround was found by editing project files to point from the v10.0 web application build targets back to 9.0. That allowed compilation once, but reopening in VS2010 reverted those edits. So it is not a stable fix for active development.

Troubleshooting workflow

flowchart TD
    A[Build works in Visual Studio 2010] --> B[NAnt command line build fails]
    B --> C{MSB4064 or MSB4063?}
    C -- yes --> D[Target NAnt to .NET 4 tools]
    D --> E[Add .NET 4 framework section in nant.exe.config]
    E --> F[Set vendor to Microsoft]
    F --> G[Match version token to installed Framework directory]
    G --> H[Run NAnt build again]
    C -- no --> I[Investigate other build errors]

Resolution options compared

OptionWhat happensDurability
Edit project files to use 9.0 web build targetsCan make command-line build pass temporarilyLow (VS2010 rewrites settings)
Switch NAnt target to .NET 4 without config updatesLeads to config/runtime errors (for example missing vendor attribute)Low
Update nant.exe.config for .NET 4 and correct version tokensReported as the working fix in the original caseHigh for this legacy stack

Step-by-step fix for the reported scenario

1) Confirm installed .NET Framework directories

dir C:\Windows\Microsoft.NET\FrameworkCode language: CSS (css)

Use this to verify the exact v4.0 folder/version available on the build machine.

2) Update NAnt to use .NET 4 framework definitions

The original report required extending nant.exe.config with .NET 4 framework entries because the existing config did not support the new target yet.

3) Add the missing vendor attribute and align version tokens

<!-- Example pattern inside the .NET 4 framework entry in nant.exe.config -->
<framework ... vendor="Microsoft" ... />

<!-- Update copied values to match what exists on disk -->
v4.0.20506 -> v4.0.30128Code language: HTML, XML (xml)

The key point is not the sample numbers themselves, but that your config must match the actual framework version present on the server.

4) Re-run the command-line build

nant

Common pitfalls

  • Relying on project-file downgrades that VS2010 will overwrite.
  • Copying a .NET 4 config block but missing required attributes such as vendor.
  • Using hard-coded framework version tokens that do not match the machine.
  • Changing build config without backing up nant.exe.config first.

For legacy pipelines, keep Visual Studio version, target framework, and NAnt framework mappings explicitly documented and version-controlled to prevent environment drift.

Find Trusted Cardiac Hospitals

Compare heart hospitals by city and services — all in one place.

Explore Hospitals
I'm Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms. I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.

Related Posts

Team Foundation Server 2015 Installation Guide (SQL Express + Update 3)

Install Team Foundation Server 2015 using the original Microsoft download paths, with clear guidance for online, offline, and ISO-based setup. This revised guide also includes an installation workflow, command example, and practical pitfalls to avoid.

Read More

How to Access a Running Docker Container Shell: docker exec vs docker attach

Need a shell inside a running container that is already in detached mode? This updated guide shows the correct workflow, compares docker exec and docker attach, and explains when SSH does and does not make sense.

Read More

Host Your Own NuGet Feed: Local Source vs NuGet.Server vs NuGetGallery

Learn how to host a private NuGet feed using three practical approaches: a local folder source, NuGet.Server, and NuGetGallery. This revised guide includes setup steps, command examples, and a workflow diagram to help you choose the right model.

Read More

Publish NuGet Packages to NuGet.org: CLI Steps, Workflow, and CI Example

Learn how to publish a NuGet package to NuGet.org using either nuget.exe or the dotnet CLI. This revised guide includes a workflow diagram, command comparison, and a CI-friendly example.

Read More

How to Create NuGet Packages with nuget.exe (Assembly, .nuspec, and .csproj Methods)

Learn three practical ways to build NuGet packages using nuget.exe: from an existing assembly, from a convention-based folder layout, or directly from a Visual Studio project. This guide includes commands, folder conventions, token behavior, and common pitfalls.

Read More

Virtualization in DevOps: Using Vagrant, Docker, and Cloud Platforms Together

This guide explains how VM-based workflows, containers, and cloud platforms complement each other in DevOps. It includes a practical workflow, trade-off table, and command examples for day-to-day use.

Read More
Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
0
Would love your thoughts, please comment.x
()
x