【问题标题】:Create multiplatform Nuget from same project files从相同的项目文件创建多平台 Nuget
【发布时间】:2017-04-21 11:13:37
【问题描述】:

我想创建一个包含多个 .NET 4.5 和 .NET Standard 的程序集的 Nuget 包。该包的一些消费者仍在使用 VS2012,所以我不能只制作一个 .NET Standard 包。

这些程序集仍在积极开发中,VS2012 用户也是如此。

docs for this situation 建议保留当前的 ​​CSPROJ 文件并创建新的 .NET Standard 文件。 但我相信,在两个版本的 CSPROJ 文件中保持项目设置是最新的将是一个有问题的麻烦。例如。如果在添加跨项目引用时,更改了构建后任务等。

我看到像Json.NET这样的项目为每个平台使用一个CSPROJ文件,但我真的认为应该以更好的方式解决这个问题。

如果我能够创建一个脚本,该脚本可以使用 msbuild 首先为 .NET 4.5 然后为 .NET Standard 构建项目,我会更喜欢它,但似乎该脚本必须修复 CSPROJ文件的 XML 以在构建时更改目标框架。如果可能的话,我也想避免这种情况。

还有哪些其他替代方法可以保留一组 CSPROJ 文件?

【问题讨论】:

    标签: c# visual-studio-2012 msbuild nuget


    【解决方案1】:

    在 PackageReference 世界中(即,如果您正在创建 NETStandard 库),您可以简单地将以下内容放入 csproj 文件中:

    网络标准1.4**;网络45** ...

    这对你有帮助吗?

    【讨论】:

    • 我知道新的“SDK 风格”CSPROJ 文件可以有一个 元素,我可以在其中指定多个目标框架。但是那些 CSPROJ 文件只能由 VS2017 读取,所以在我们将所有人员和项目从 VS2012 移出之前,它对我没有帮助。
    猜你喜欢
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2021-08-24
    • 1970-01-01
    • 2019-06-16
    • 2019-03-22
    相关资源
    最近更新 更多