我需要为 3.5 和 4.0 .NET 应用程序提供一个组件。以下是事实:
- 3.5 和 4.0 .NET 应用程序都使用组件
- 组件作为 Nuget 包分发
- 组件对 System.Threading.dll 有依赖(面向 3.5 时,引用 backport;面向 4.0 时,间接引用框架程序集)
我能想到几种方法:
- 仅针对 3.5和 ILMerge (/internalize) System.Threading.dll构建
- 针对 3.5和4.0 构建:为 3.5 和 4.0 构建配置创建单独的 .csproj 文件。Nuget 包将包含两组程序集。
- 针对 3.5和4.0 构建:重用 .csproj 文件并通过将条件任务添加到 .csproj 文件来创建新的项目配置以针对 3.5 和 4.0 构建。Nuget 包将包含两组程序集。
选项 2 和 3 只是在组件的生成方式上有所不同,因为分布相同。我过去曾使用过一次选项 3,但效果不太好,因为它不能很好地与 Visual Studio 项目编辑器配合使用。
我想知道我所描述的场景是否有最佳实践或每种方法的优缺点。
版主注意:我理解这是一个有点主观的问题,请随时对其进行编辑以使其更加客观。但是,请不要锁定/删除它,因为我真的需要就此获得建议。