我的公司有很多解决方案,我需要转换它们并使其与 VS2012 兼容(顺便说一句,保留框架 4.0)。 我尝试直接使用 2012 打开它们,转换器在 .csproj 文件中进行了一些更改。
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
及以下:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
有人能告诉我这些变化到底意味着什么吗?我尝试用谷歌搜索,但没有成功。
另外,如果我尝试将 .csproj 回滚到以前的版本并保持原样,是否会有任何风险?
感谢和问候!
最佳答案
每个 Visual Studio 项目基本上都是一个大型构建脚本(您实际上可以使用 msbuild 从命令行构建项目文件)。转换器所做的就是为您正在使用的新版本的 Visual Studio 提取正确的构建属性。您实际上可以查看它正在拉入的文件,因为它们位于您的本地计算机上。
您发布的第一个更改是提取 Visual Studio 2012 所需的 Microsoft.Common.props
(通用生成属性)的正确版本。此导入也在您的旧项目中,只是不同版本。
第二个更改是导入所有必要的构建“目标”(msbuild 调用脚本“目标”的可执行 block )来构建 Web 应用程序。
如果你很偏执,当然,保留旧项目的备份,但说实话,我没有看到上述更改有任何令人担忧的地方 - 它们只是为了为构建引擎引入正确的支持文件。
希望有帮助!我使用项目文件和 msbuild 多年,如果您需要,可以为您提供更详细的解释。
关于c# - Visual Studio 2010 项目转换为 Visual Studio 2012,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19978802/