v11.0\WebApplications\Microsoft.WebApplication.targets was not found when file actually references v10

后端 未结 11 1250
花落未央
花落未央 2020-12-01 01:26

First some background. At the end of 2012 we migrated our vs2008 solution to vs2010 but we still target .NET 3.5. (I know nothing but the latest and greatest here!)

相关标签:
11条回答
  • 2020-12-01 01:29

    I got this error in the end of November without making any changes to either the configuration of my TeamCity installation or MSBuild installation or the source code. On my build server Visual Studio isn't even installed, and the change from VS2010 to VS2012 was made in the end of August without any problems at the time.

    My MSBuild version is 4.0.30319.18408, my build server is a Windows Server 2008 R2 SP1 with TeamCity v6.5.3.

    I solved the issued by simply copying the v11-folder from another build server which was unaffected.

    My guess is that this could have happened in two ways:

    1. Something was updated which triggered a deletion of the v11-folder. Could it be a Windows Update to .NET or something?

    2. Something was updated which changed my TeamCity/MSBuild configuration from using v10 to v11 and the builds stop working as the v11 never existed.

    I've got a update to .NET Framework 4.5.1 on December 3rd, could that be the reason?

    Brgds

    Jonas

    0 讨论(0)
  • 2020-12-01 01:32

    A simple solution to this problem:

    Go to the following path:

    C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio

    You will see the latest version V10.0, v11.0, v12.0 depending on your Visual Studio 2010, 2012 or 2013 install.

    Copy WebApplications folder from either of latest version directory and paste to other.

    Your issues should be resolved.

    0 讨论(0)
  • 2020-12-01 01:34

    Hack, but solved it by copying: c:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications*.* to c:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications*.*

    0 讨论(0)
  • 2020-12-01 01:35

    Wow. We just saw the same thing happen on our build machine. We use VS2010 and target .NET 4.0. Our project files explicitly import the v10.0 version of these targets. With no changes to the code, yesterday the build was fine and today it's failing with a complaint about a missing v11.0 version. The .NET Framework 4.5.1 got installed/updated last night on this build machine as an automatic update. We're going to force v10.0 with the parameter (or env. variable), but this certainly took us by surprise...

    UPDATE: What's even more weird, is that it seems to be the case that today's version of msbuild seems to be using the first line of the sln file to determine which VisualStudioVersion to use by default, whereas yesterday's version did not:

    Format Version 12.00
    

    We tested manually changing this to 11.00 and the build started working again.

    In our case, even though we're targeting and building everything for 2010/4.0, some devs have been getting ready for VS2012 (since MS claimed that the project files are compatible), and this particular solution was last saved (months ago) in VS2012. Before today, that wasn't causing a problem.

    0 讨论(0)
  • 2020-12-01 01:44

    You can add the VisualStudioVersion property like this:

    <ItemGroup>
      <ProjectToBuild Include="$(MSBuildProjectDirectory)\..\MySolution.sln">
        <Properties>Configuration=$(BuildConfiguration);WarningLevel=0;VisualStudioVersion=12.0</Properties>
      </ProjectToBuild>
    </ItemGroup>
    <MSBuild Projects="@(ProjectToBuild)" Targets="Rebuild"/>
    
    0 讨论(0)
  • 2020-12-01 01:46

    I had the same issue. Fixed by going through above listed solutions. The issue is caused because appropriate version of Visual Studio Tools (BuildTools) is not available on the Build server. As rightly pointed above, this can be resolved by installing BuildTools but is not the option in my case.

    Here is another alternative - use Nuget

    Install-Package MSBuild.Microsoft.VisualStudio.Web.targets -Version 14.0.0.3
    

    Identify the start up project and Install the web.targets based on the version of Visual studio being used. The following files will be modified which includes the required changes

    In packages.config:

    <package id="MSBuild.Microsoft.VisualStudio.Web.targets" version="14.0.0.3" targetFramework="net45" />
    

    In .csproj:

    <Import Project="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\build\MSBuild.Microsoft.VisualStudio.Web.targets.props" Condition="Exists('..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\build\MSBuild.Microsoft.VisualStudio.Web.targets.props')" />
    

    Hope this helps!!! Good Luck,

    Cheers,

    0 讨论(0)
提交回复
热议问题