在 Nuget 包中包含 .exe 文件是不好的做法吗?

Is it bad practice to include .exe files in a Nuget package?

首先,我想澄清一下,我来自 Java/Maven 背景。

我正在管理 Nexus,我们有一个在 .NET 中进行开发的团队,他们询问他们是否可以将 exe 文件存储在 Nexus 的 Nuget 存储库下。由于这是不可能的(并且 exe-s 并不是 "archives" 中的真正工件),Nuget 包是否是存储 exe-s 的合理位置?我个人会说 "no",因为在我看来,Nuget 包应该只包含库和其他资源,但由于我自己不是 .NET 开发人员,所以我想找出最好的做法是。

如果你的 nuget 包的目的是部署一个可执行程序,那么确保你可以在那里存储一个 exe - 毕竟还有什么其他选择!

are Nuget packages a reasonable place to store exe-s?

如果是工具,那么。有几个很好的例子表明 Nuget 是存储 exe 文件的好地方。

例如:

nuget 包 dotless 有一个工具(独立 exe),它是 CSS 文件的编译器。这使我们能够在我们的 (TFS-) 构建服务器中使用该工具,而无需在构建服务器上安装任何第三方软件。

但除此之外,我同意你的看法。 Nuget 包主要用于将在项目中引用的库和其他资源。但它毕竟只是一个在开发者和不同团队之间传播代码的平台。

或者如Nuget所说:

No matter what your package does or what code it contains, NuGet is how you package that functionality into a component that can be shared with and used by any number of other developers.