.net - 是否可以从 .Net Framework 项目制作全局工具?
问题描述
我最近创建了一个命令行工具来在命令行创建 ClickOnce 包。这利用Microsoft.Build.Tasks.Core创建应用程序和部署清单文件。不幸的是,它还引入了针对 .Net Framework 的要求,因为此包的 .Net Core 版本不包含 生成 ClickOnce XML 文件所需的ApplicationManifest和DeployManifest对象。
我很想将我的应用程序打包为一个全局工具,并将其发布到 NuGet。不幸的是,这仅适用于 .Net Core 程序集。当我尝试将我的项目打包为工具时(通过添加<PackAsTool>true</PackAsTool>
),我得到error NETSDK1054: only supports .NET Core.
所以我认为我有三个选择:
- 忘记将全局工具发布到 NuGet
- 删除对 的依赖
Microsoft.Build.Tasks.Core
,然后从头开始构建 2 个 XML 文件 - 创建一个 .Net Core 命令行应用程序,它只将 StdIo 传递给 .Net Framework 应用程序,并将两者打包为全局工具。
如果可能的话,我想避免使用选项 2,因为 XML 模式很重要,并且手动滚动 XML 可能是错误的主要来源。
我不确定选项 3 是否合适,它(如果有效)意味着发布一个对 .Net Framework 具有隐藏依赖关系的 NuGet 全局工具——这可能被认为是错误的形式。
我错过了任何选择吗?
解决方案
考虑到经过的时间,我认为答案一定是 1。
我认为正确的方法是制作一个独立的 UI,与传统的安装程序打包在一起,它有一个命令行界面可供希望使用它的人使用。
推荐阅读
- gradle - Gradle 5.0:java.lang.String 无法转换为类 groovy.lang.Closure(lombok 问题)
- angular - 仅在订阅后返回 observable
- python - Pandas 中的 lambda 函数中的 Lambda 函数
- r - 带有 ggplot 的残差图,X 轴作为“排序”残差
- html - 如何在主要内容区域上重叠页脚但不隐藏内容
- ruby-on-rails-4 - 从 Rails 3 升级到 Rails 4 后,CarrierWave url nil
- excel - 当我使用相对范围时,VBA 会自动将我的范围转换为绝对值
- swift - 从“URL”转换为不相关类型“字符串”总是失败
- python-3.x - python3.6 matplotlib 极慢
- php - 发布/编辑时 Invision 社区委员会出现问题,出现“EX0”错误