【发布时间】:2014-11-16 08:45:14
【问题描述】:
我有一个产品,它本质上是一个开发工具包——一组用于特定目的的 .NET 程序集(仅编译)。产品安装还包括使用示例,我以 Visual Studio 项目的形式以源代码形式分发。其中一些示例引用了其他 NuGet 包(未在产品本身中使用)。具体来说,它是 Rx-Main 包(用于 Microsoft Reactive Extensions),但也可以是其他东西。
在我的测试中,我从示例中引用了这个包,确认了许可条件,观察了它添加到项目结构中的所有文件(包括为许多平台构建的包程序集),然后将它们包含在我的安装中。这可行,但有以下问题:
1) 我不确定以这种方式重新分发包是否符合许可条件。作为最低要求,我希望最终用户在 Visual Studio 中打开项目时被要求重新确认包许可条件,但这并没有发生。
2) 软件包二进制文件不必要地包含在安装中,使其变得更大。我可以放心地假设用户有 Internet 连接并且可以下载包。因此,我宁愿只分发对包的“参考”。只有当用户真正需要该示例时,他才会下载参考包。
我试图通过从项目/安装中删除“包”目录并仅保留 packages.config 文件(似乎包含包标识/引用)来做到这一点。我希望当在 Visual Studio 中打开这样的项目时,该包将被检测为丢失并重新下载等。但它不起作用 - 它只是抱怨缺少程序集(那些应该来自引用的包的程序集),并使没有尝试加载包。
因此,问题是,我如何分发引用 NuGet 包的 Visual Studio 项目(以源代码形式),而不实际分发包本身?
【问题讨论】:
标签: visual-studio nuget