.net 发布内含可执行文件的nuget包,nuget.org

.net 发布内含可执行文件的nuget包,nuget.org,.net,package,nuget,executable,publish,.net,Package,Nuget,Executable,Publish,我是个好人,我想为你做贡献 我有一项任务无法用.NET解决(将.pdf转换为.html,但这不是要点,它可能是任何其他任务),但使用Python很容易处理。因此,我编写了一个.py脚本,将其转换为单文件可执行文件,在.NET中编写了一些包装,它就在那里工作了 包装器基本上只是将可执行文件卸载到硬盘上的某个地方,通过命令行参数调用它并获得响应 现在,我该如何发布这个内部带有可执行文件的nuget 这是允许的吗 这个主意是不是太糟糕了,以至于我把整件事都扔掉了 我是否以某种方式明确警告用户该库包含

我是个好人,我想为你做贡献

我有一项任务无法用.NET解决(将
.pdf
转换为
.html
,但这不是要点,它可能是任何其他任务),但使用Python很容易处理。因此,我编写了一个
.py
脚本,将其转换为单文件可执行文件,在.NET中编写了一些包装,它就在那里工作了

包装器基本上只是将可执行文件卸载到硬盘上的某个地方,通过命令行参数调用它并获得响应

  • 现在,我该如何发布这个内部带有可执行文件的nuget
  • 这是允许的吗
  • 这个主意是不是太糟糕了,以至于我把整件事都扔掉了
  • 我是否以某种方式明确警告用户该库包含一个可执行文件,该文件将被复制到他们的硬盘上
  • 提供指向.py脚本代码的链接(在哪里?)
  • 以及某种验证(如何验证?)这段代码实际上是可执行文件中的内容
现在,我该如何发布这个内部带有可执行文件的nuget

这是惯例。NuGet包允许各种工件,如源文件、图像、XML文件、MSBuild的构建脚本、工具可执行文件、PowerShell脚本以及任何类型的二进制文件,包括库和可执行文件

这是允许的吗

NuGet是一个包管理器。至于软件包本身,微软的报告并不十分清楚什么是有用的代码或内容

任何现代开发平台的基本工具都是一种机制,通过该机制,开发人员可以创建、共享和使用有用的代码。通常,此类代码被捆绑到“包”中,其中包含编译代码(如DLL)以及使用这些包的项目所需的其他内容

许多主流NuGet软件包都包含可执行文件,例如,它包含一个完整的Chromium浏览器,甚至是微软自己的,它包含多个OpenSSL、Boost或Brotli的可执行文件,以及一个用于复制文件的PowerShell脚本等等。顺便说一句,这是在MSDN上构建本机NuGet包的主要示例

这个主意是不是太糟糕了,以至于我把整件事都扔掉了

不,即使它从一开始就不打算打包可执行文件,但它已经成为一种常见的做法。每个使用NuGet的人都应该意识到他们正在使用库和其他可能有害的工件。如何确保您使用的DLL安全

我是否以某种方式明确警告用户该库包含一个可执行文件,该文件将被复制到他们的硬盘上

如果您查看上面的包,除了作为本机包之外,没有任何关于内容的通知。你必须检查软件包或找到相应的项目站点才能发现这一点。此外,包含不需要的工件的包可能会被其他包依赖项的级联所遮蔽

当然,您可以通过NuSpec文件中的
description
标记提供软件包的全面描述。此说明将显示在nuget.org上,以及大多数客户端中

提供指向.py脚本代码的链接(在哪里?)

您可以通过
projectUrl
标记提供指向项目站点的链接,在该标记中,您可以深入了解详细信息并提供源代码。另一种选择是将其作为内容文件包含以供参考,但有人查看它的可能性很小,并且不能证明您的可执行文件是从该脚本构建的

以及某种验证(如何验证?)这段代码实际上是可执行文件中的内容

这一切都归结为一个问题,你怎么能相信一个包裹你不能

软件包可能会带来安全风险,因为它们可能会执行任意代码或将恶意代码带入应用程序。您可以作为消费者自己检查所有文件,也可以依赖您信任的来源或作者。提供信任的一种方法是通过防止内容篡改来确保包的完整性。同样,这并不能验证可执行文件是如何构建的

现在,我该如何发布这个内部带有可执行文件的nuget

这是惯例。NuGet包允许各种工件,如源文件、图像、XML文件、MSBuild的构建脚本、工具可执行文件、PowerShell脚本以及任何类型的二进制文件,包括库和可执行文件

这是允许的吗

NuGet是一个包管理器。至于软件包本身,微软的报告并不十分清楚什么是有用的代码或内容

任何现代开发平台的基本工具都是一种机制,通过该机制,开发人员可以创建、共享和使用有用的代码。通常,此类代码被捆绑到“包”中,其中包含编译代码(如DLL)以及使用这些包的项目所需的其他内容

许多主流NuGet软件包都包含可执行文件,例如,它包含一个完整的Chromium浏览器,甚至是微软自己的,它包含多个OpenSSL、Boost或Brotli的可执行文件,以及一个用于复制文件的PowerShell脚本等等。顺便说一句,这是在MSDN上构建本机NuGet包的主要示例

这个主意是不是太糟糕了,以至于我把整件事都扔掉了

不,即使它从一开始就不打算打包可执行文件,但它已经成为一种常见的做法。每个使用NuGet的人都应该意识到他们正在使用库和其他可能有害的工件。如何确保您使用的DLL安全

我是否以某种方式明确警告用户该库包含一个可执行文件,该文件将被复制到他们的硬盘上

如果你看上面的包,没有任何关于con的通知