我有一个文件名 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。