sdk
latest
false
重要 :
请注意此内容已使用机器翻译进行了部分本地化。
UiPath logo, featuring letters U and I in white
开发者指南
Last updated 2024年10月25日

将活动迁移到 .NET 6

本页概述了如何将自定义 .NET Framework 活动迁移到 .NET 6,以在从 Studio 2021.10.6 开始提供的具有 Windows 兼容性的项目中使用。

我们将使用 “创建包含 代码的活动(旧版)” 页面上记录的 MathSquareOfSum .NET Framework 活动示例,作为迁移到面向 Windows 的 .NET 6 的示例,同时还保持了与 .NET Framework for Windows - Legacy 项目的兼容性。

第 1 步:将项目迁移到新的 SDK 样式格式,并将 net6.0-windows 目标

必须将使用 .NET Framework 项目格式的项目迁移到新的 SDK 样式格式。 有关更多信息,请参阅 Microsoft 文档。 必须在 .csproj 文件中声明包引用 文件,而不是 packages.config文件。

  1. 在“解决方案资源管理器”中,右键单击该项目,然后选择 “卸载项目”
  2. 复制引用并清除 .csproj 文件中的所有内容。
  3. 手动将 .csproj 文件更新为新格式。
  4. 添加目标框架 net6.0-windows
  5. 仅通过添加条件将原始引用标记为 net461
  6. 添加包含 net6.0-windows条件的新参考部分。 您必须为 .NET 声明以下 WWF 依赖项:UiPath.Workflow.Runtime、UiPath.Workflow、System.Activities.Core.Presentation、System.Activities.Metadata。 确保所有依赖项都支持 .NET。 您可能需要查找较新的包版本或替换包。
  7. 在“解决方案资源管理器”中,右键单击该项目,然后选择 “重新加载项目”

该文件应如下所示。

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop" ToolsVersion="Current">
  <PropertyGroup>
    <TargetFrameworks>net461;net6.0-windows</TargetFrameworks>
    <AssemblyName>MathSquareOfSum</AssemblyName>
    <RootNamespace>MathSquareOfSum</RootNamespace>
    <UseWpf>true</UseWpf>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
    <Reference Include="PresentationCore" />
    <Reference Include="PresentationFramework" />
    <Reference Include="System" />
    <Reference Include="System.Activities" />
    <Reference Include="System.Activities.Core.Presentation" />
    <Reference Include="System.Activities.Presentation" />
    <Reference Include="System.ComponentModel.Composition" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xaml" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
    <Reference Include="WindowsBase" />
  </ItemGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'net6.0-windows' ">
    <PackageReference Include="UiPath.Workflow.Runtime" Version="6.0.0-20220401-03" PrivateAssets="All" />
    <PackageReference Include="UiPath.Workflow" Version="6.0.0-20220401-03" PrivateAssets="All" />
    <PackageReference Include="System.Activities.Core.Presentation" Version="6.0.0-20220318.2" PrivateAssets="All" />
    <PackageReference Include="System.Activities.Metadata" Version="6.0.0-20220318.2" PrivateAssets="All" />
  </ItemGroup>
</Project><Project Sdk="Microsoft.NET.Sdk.WindowsDesktop" ToolsVersion="Current">
  <PropertyGroup>
    <TargetFrameworks>net461;net6.0-windows</TargetFrameworks>
    <AssemblyName>MathSquareOfSum</AssemblyName>
    <RootNamespace>MathSquareOfSum</RootNamespace>
    <UseWpf>true</UseWpf>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
    <Reference Include="PresentationCore" />
    <Reference Include="PresentationFramework" />
    <Reference Include="System" />
    <Reference Include="System.Activities" />
    <Reference Include="System.Activities.Core.Presentation" />
    <Reference Include="System.Activities.Presentation" />
    <Reference Include="System.ComponentModel.Composition" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xaml" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
    <Reference Include="WindowsBase" />
  </ItemGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'net6.0-windows' ">
    <PackageReference Include="UiPath.Workflow.Runtime" Version="6.0.0-20220401-03" PrivateAssets="All" />
    <PackageReference Include="UiPath.Workflow" Version="6.0.0-20220401-03" PrivateAssets="All" />
    <PackageReference Include="System.Activities.Core.Presentation" Version="6.0.0-20220318.2" PrivateAssets="All" />
    <PackageReference Include="System.Activities.Metadata" Version="6.0.0-20220318.2" PrivateAssets="All" />
  </ItemGroup>
</Project>
检查每个目标的 .cs 文件中的代码是否缺少引用,并在需要时更新 .csproj 文件中的引用。


重要提示: 不要在 NuGet 包中包含引用的包,也不要将其作为依赖项添加到包元数据中。 包含引用的包会导致无法在 Studio 中安装包。

步骤 2:构建解决方案

请务必在尝试构建项目之前测试项目是否存在错误。

从“ 构建 ”菜单中,选择“ 构建解决方案”。 对于每个目标框架,将构建 DLL 库并将其保存在以下位置的单独文件夹中: %UserProfile%\source\repos\MathSquareOfSum\MathSquareOfSum\bin\Debug

步骤 3:创建 NuGet 包

使用 NuGet 包资源管理器创建 NuGet 包,如使用代码创建活动(旧版)中所述。

  1. 启动 NuGet 包资源管理器,然后单击 “新建包 (Ctrl + N)”。 系统将显示一个拆分窗口,其中显示 包元数据包内容。 我们需要在后一部分中添加所有依赖项。
  2. 在“ 包内容 ” 部分中右键单击。 系统将显示上下文菜单。
  3. 单击 “添加库文件夹” 请注意,系统会在“ 包内容 ”部分中创建一个新的库项目。
  4. 右键单击“ ” 两次,然后进行如下选择:
    • 添加 .NET Framework 文件夹 > v4.6.1
    • 添加 .NET 文件夹 > v6.0-windows
  5. 右键单击上一步中添加的每个文件夹,然后选择“ 添加现有文件 ”,以加载每个文件夹所需的外部程序集 (.dll) 文件。 这些文件位于 \bin\Debug 文件夹中具有框架名称的子文件夹中:
    • net461 - MathSquareOfSum.dll
    • net6.0-windows - MathSquareOfSum.dll
  6. 将文件夹 net6.0-windows 重命名为 net6.0-windows7.0
  7. 选择文件后,访问“ 编辑 ”菜单,然后选择“ 编辑元数据”。 左侧面板现在配备了可编辑的元数据字段。
  8. 根据需要编辑元数据字段。
  9. 选择“ 编辑依赖项”,然后添加以下目标框架: net461net6.0-windows7.0


  10. 单击左上角的绿色复选标记按钮,以保存所有更改。
  11. 选择“ 文件 ” >“ 另存为 ” 以保存新文件。

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。