首页 > 解决方案 > 是否可以从 .Net Framework 项目制作全局工具?

问题描述

我最近创建了一个命令行工具来在命令行创建 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-corenugetpackaging

解决方案


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

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


推荐阅读