gpt4 book ai didi

visual-studio - 如何使用VS2017升级CSPROJ文件

转载 作者:行者123 更新时间:2023-12-03 08:47:07 25 4
gpt4 key购买 nike

到目前为止,VS2017已将几个基于project.json / .xproj的项目正确转换为新的.csproj格式。

我还想将新的.csproj格式与以前仅针对.NET Framework的较旧.csproj项目一起使用(即它们不适用于dnx / dotnet CLI)。

看来,即使一个项目仍然仅以.NET Framework为目标,但<PackageReference>和易于编辑的.csproj文件的优点似乎值得(希望不太严重)麻烦。

这可以直接与Visual Studio 2017一起使用吗?

如果不是,将需要哪些手动步骤?

最佳答案

我正在编辑我的答案,以明确您不需要升级.csproj文件。正如Drew在下面评论的那样,这样做有好处。但是,VS2017将继续与经典csproj文件一起正常工作。此外,VS2017中没有任何东西可以为您执行升级。如果您确实希望利用新格式,那么下面的演练应该会有所帮助。

对于简单的类库或控制台项目,将.csproj文件升级为新的Visual Studio 2017格式很容易。

如果您不使用版本控制,请在开始之前确保备份csproj文件以及Properties/AssemblyInfo.cspackages.config。新的csproj文件很棒。在许多项目中,我用一打左右的代码替换了数百行代码。但是,随着Visual Studio 2017继续支持以前的csproj文件,这可能是过早优化的情况。如果您的解决方案包含数十个项目,许多NuGet软件包以及对csproj的任何自定义,则您很可能在进行不必要的make work项目。

如下所述,用适当的代码替换.csproj文件的全部内容。

类库

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net462</TargetFramework>
</PropertyGroup>
</Project>

控制台应用程序

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net462</TargetFramework>
</PropertyGroup>
</Project>

<TargetFramework>属性更改为所需的.NET版本,例如net452,net46,net461等。

默认情况下,编译器将提取项目文件夹中的所有代码。如果项目文件夹之外有代码,则必须像在Visual Studio和 csproj的早期版本中一样,显式引用它。

进行上述更改之后,将您的解决方案加载到Visual Studio 2017中。这时,应该构建最基本的项目。如果不是,则可能需要添加缺少的程序集或项目引用。添加引用与在Visual Studio的早期版本中非常相似。在解决方案资源管理器中选择您的项目,右键单击 Dependencies,然后选择 Add Reference。添加您缺少的任何Framework或Project引用。

尝试再次构建您的解决方案/项目。您可能会收到有关重复属性的错误。该错误是因为先前在 AssemblyInfo.cs中定义的属性已移至csproj文件。删除“属性”文件夹下的 AssemblyInfo.cs文件,应该可以解决这些错误。在删除 AssemblyInfo.cs之前,您应该移动已定义的所有数据。可以在项目文件的“包信息”部分中输入大多数属性。右键单击您的项目名称,选择Package页面,然后输入 AssemblyInfo.cs文件中先前定义的任何数据。这包括项目的版本,作者,版权等。

以下是显示上一步的屏幕截图。

enter image description here

如果您在项目中使用任何NuGet软件包,则也需要将其移动到新格式。在Visual Studio 2017之前的版本中,除了 Packages.config中的引用之外,NuGet还依赖于项目根目录中名为 csproj的文件。要迁移您的NuGet软件包引用,请右键单击您的解决方案并加载Nuget软件包管理器。加载到右上角后,单击齿轮,将加载NuGet软件包管理器选项。选择 General。在“程序包管理”下,将选项 Default package management format更改为PackageReference。此时,您必须手动将所有NuGet软件包添加回您的解决方案。您可以在项目根文件夹的 packages.config文件中找到所有软件包。将所有软件包添加回去后,您可以删除 packages.config文件。

关于visual-studio - 如何使用VS2017升级CSPROJ文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com