我有一个文件名 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 导入此路径



.
我有 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。

10-07 18:51