我可以使用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
这是有效的-但感觉我们是在违背常理。
<标题>问题:我们走的方向对吗?是否有更好的工具或方法来发布多平台软件包?
标题>标题>我不认为这是现成的,你必须自己做。
这里有3个选项:
- 在您的项目中手动引用dll。(仅安装一次)
- 创建自己的安装脚本,从node_modules中引用dll
my_install [module]
=>npm install
+update .csproj/project.json
- 在启动时从node_modules文件夹加载额外的dll(仅在运行时需要dll时有效)。