错误MSB4057:名为MVCWebUIComponent.csproj

时间:2017-10-18 06:06:46

标签: c# visual-studio msbuild

我有一个文件名MVCWebUIComponent.csproj,我将以下行添加到我的文件中

   <PropertyGroup>
        <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
        <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> </PropertyGroup>

    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

但它不会将目标程序包v10.0导入此路径

  

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

。  我有v9.0文件夹,但我需要将软件包v10.0导入我的visual studio 2017.我该怎么办?

1 个答案:

答案 0 :(得分:1)

  

我有v9.0文件夹,但我需要将软件包v10.0导入我的visual studio 2017.我应该怎么做?

不确定为什么要将导入包v10.0导入Visual Studio 2017.由于要将其导入Visual Studio 2017,$(MSBuildExtensionsPath32)的值应该是相对于MSBuild目录的新位置:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild

因此,它不会将目标程序包v10.0导入路径C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio

此外,导入命令:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

是原始行的关闭版本( Condition =“false”),允许Visual Studio仍将您的项目视为有效的Web应用程序项目(这就是VS的技巧) 2010 SP1自己做)。因此,通常,不会导入包v10.0。

您可以创建一个Web应用程序项目,检查项目文件,您将找到以下代码:

  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

导入命令<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />实际导入,最新行将在(Condition="false")时导入。

如果导入软件包v10.0进入我的Visual Studio 2017是你的坚持,你只需要在csproj中添加一些东西来重定向MSBuildExtensionsPath

<PropertyGroup>
    <MSBuildExtensionsPath32>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio</MSBuildExtensionsPath32>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath32)\v10.0\WebApplications\Microsoft.WebApplication.targets" />

注意:由于你有v9.0文件夹,你应该从其他机器复制v10.0。