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

时间:2016-11-09 12:03:00

标签: c# .net visual-studio npm

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

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

背景:

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

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

我们需要一种发布这些组件的方法,使包装用户明白它们属于一起,并一起发布和版本化(即服务器库的0.8版本不能与网络版本0.9一起使用)客户端库。)

我们尝试了什么:

首先,我们考虑坚持使用本机工具 - 即使用NuGet发布.NET库,使用NPM发布Angular模块。

但是这种方法很难保持.NET和Web组件的一致性,因为无法在NuGet和NPM之间指定版本依赖性

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

但我们不确定如何在Visual Studio 2015 C#/ .NET项目中安装此类软件包。理想情况下,我们只需运行

npm install --save foo-logging

并且两个程序集FooLoggingClient.dll和FooLoggingServer.dll将自动显示在'引用'。

下。

但不幸的是,我们必须手动将程序集引用添加到

node_modules\foo-logging\dist\FooLoggingClient.dll

这很有效 - 但感觉就像我们正在对抗谷物。

问题:

我们是否朝着正确的方向前进?是否有更好的工具或方法来发布多平台包?

1 个答案:

答案 0 :(得分:0)

我不认为这是开箱即用的,你必须亲自制作。

这里有3个选项:

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