【问题标题】:Is it possible to make a global tool from a .Net Framework project?是否可以从 .Net Framework 项目制作全局工具?
【发布时间】:2020-04-30 18:54:19
【问题描述】:

我最近created a command-line tool 在命令行创建 ClickOnce 包。这利用Microsoft.Build.Tasks.Core 创建应用程序和部署清单文件。不幸的是,它还引入了针对 .Net Framework 的要求,因为此包的 .Net Core 版本不包含生成 ClickOnce XML 文件所需的 ApplicationManifestDeployManifest 对象。

我很想将我的应用程序打包为一个全局工具,并将其发布到 NuGet。不幸的是,这仅适用于 .Net Core 程序集。当我尝试将我的项目打包为工具时(通过添加<PackAsTool>true</PackAsTool>),我得到error NETSDK1054: only supports .NET Core.

所以我认为我有三个选择:

  1. 忘记将全局工具发布到 NuGet
  2. 移除对Microsoft.Build.Tasks.Core的依赖,从头开始构建这2个XML文件
  3. 创建一个 .Net Core 命令行应用程序,它只会将 StdIo 传递给 .Net Framework 应用程序,并将两者打包为一个全局工具。

如果可能的话,我想避免使用选项 2,因为 XML 模式很重要,手动滚动 XML 可能是错误的主要来源。

我不确定选项 3 是否合适,它(如果有效)意味着发布一个对 .Net Framework 具有隐藏依赖关系的 NuGet 全局工具 - 这可能被认为是错误的形式。

我错过了任何选择吗?

【问题讨论】:

    标签: .net .net-core nuget packaging


    【解决方案1】:

    考虑到经过的时间,我认为答案一定是 1。

    我认为正确的做法是制作一个独立的 UI,与传统的安装程序打包在一起,它有一个命令行界面可供希望使用它的人使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2021-11-26
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多