我可以使用NPM发布和消费二进制. net程序集吗?

本文关键字:二进制 net 程序集 可以使 NPM 我可以 | 更新日期: 2023-09-27 18:17:10

我可以发布二进制.NET程序集作为NPM包吗?

其他项目如何通过安装包来引用该程序集?

<标题>背景:

我正在写一个日志框架,将从大约5个其他项目中使用。该框架由4个组件组成:

  • .NET日志服务器库;二进制.NET程序集,用于处理来自客户端的日志消息
  • web客户端Javascript库:一个Angular模块,用于从web客户端发送日志消息
  • .NET客户端库:二进制.NET程序集,用于从。net应用程序发送日志消息
  • 一个带有UI组件的Angular模块,用于查看和控制日志

我们需要一种发布这些组件的方式,让包用户清楚地知道它们属于一个整体,并且是一起发布和版本控制的(即服务器库的0.8版本不能与web客户端库的0.9版本兼容)。

我们尝试过的:

一开始,我们考虑坚持使用本地工具——即使用NuGet发布。net库,使用NPM发布Angular模块。

但是这种方法使得保持。net和web组件的一致性非常困难,因为没有办法指定NuGet和NPM之间的版本依赖关系

相反,我们现在考虑在一个NPM包中发布所有四个组件——安装该包的项目可以忽略未使用的组件。

但是我们不确定如何在Visual Studio 2015 c#/中安装这样的包。网络项目。理想情况下,我们只需运行

npm install --save foo-logging

和两个程序集foologingclient .dll和foologingserver .dll会自动出现在'references'下。

但不幸的是,我们必须手动添加一个程序集引用到
node_modules'foo-logging'dist'FooLoggingClient.dll

这是有效的-但感觉我们是在违背常理。

<标题>问题:

我们走的方向对吗?是否有更好的工具或方法来发布多平台软件包?

我可以使用NPM发布和消费二进制. net程序集吗?

我不认为这是现成的,你必须自己做。

这里有3个选项:

  • 在您的项目中手动引用dll。(仅安装一次)
  • 创建自己的安装脚本,从node_modules中引用dll my_install [module] => npm install + update .csproj/project.json
  • 在启动时从node_modules文件夹加载额外的dll(仅在运行时需要dll时有效)。