0

我需要为 3.5 和 4.0 .NET 应用程序提供一个组件。以下是事实:

  1. 3.5 和 4.0 .NET 应用程序都使用组件
  2. 组件作为 Nuget 包分发
  3. 组件对 System.Threading.dll 有依赖(面向 3.5 时,引用 backport;面向 4.0 时,间接引用框架程序集)

我能想到几种方法:

  1. 针对 3.5和 ILMerge (/internalize) System.Threading.dll构建
  2. 针对 3.54.0 构建:为 3.5 和 4.0 构建配置创建单独的 .csproj 文件。Nuget 包将包含两组程序集。
  3. 针对 3.54.0 构建:重用 .csproj 文件并通过将条件任务添加到 .csproj 文件来创建新的项目配置以针对 3.5 和 4.0 构建。Nuget 包将包含两组程序集。

选项 2 和 3 只是在组件的生成方式上有所不同,因为分布相同。我过去曾使用过一次选项 3,但效果不太好,因为它不能很好地与 Visual Studio 项目编辑器配合使用。

我想知道我所描述的场景是否有最佳实践或每种方法的优缺点。

版主注意:我理解这是一个有点主观的问题,请随时对其进行编辑以使其更加客观。但是,请不要锁定/删除它,因为我真的需要就此获得建议。

4

1 回答 1

0

我将针对这两个框架进行编译,并分发一个包含 Net35 和 Net40 目录的 NuGet 包。然后,我将向 System.Threading.Tasks NuGet 包(http://www.nuget.org/packages/System.Threading.Tasks)添加一个依赖项。这是最佳实践,因为它确保您的本地包目录包含任何版本的框架所需的一切。

于 2013-07-25T19:34:47.290 回答