c# - Visual Studio 2010 项目转换为 Visual Studio 2012

标签 c# visual-studio-2010 visual-studio-2012 migration csproj

我的公司有很多解决方案,我需要转换它们并使其与 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/

相关文章:

c# - LINQ 平均时间跨度?

c# - 从 C# 代码调用 dll 函数期间出错

c++ - 简单的窗口但不起作用

c# - Selenium C# 的第二个测试方法失败

c# - 将 JSON 转换为数据表

c - 头文件 (.h)、库文件 (.lib) 和 DLL (.dll) 文件如何关联

visual-studio-2010 - 如何使用TFS和构建代理正确引用GAC中的dll

visual-studio-2012 - 如何让 Visual Studio 愉快地使用 VMware 中的共享文件夹

c++ - 从 VS 2017 到 VS 2012 的命名空间转换

c# - 使用参数在 MVVM Light 中打开新窗口的最佳实践