2016-11-09 38 views
0

我可以發佈一個二進制.NET程序集作爲NPM包嗎?我可以使用NPM發佈和使用二進制.NET程序集嗎?

其他項目如何通過安裝包來引用該程序集?

背景:

我寫日誌框架將從5左右的其他項目使用。該框架包括4個部分組成:

  • 一個.NET日誌服務器庫:來自客戶端的
  • 處理的日誌消息的二進制.NET組件的web客戶端Javascript庫:用於發送日誌中的一個角模塊從Web客戶端的消息
  • .NET客戶端庫:從.NET應用程序
  • 一個網絡信息中心的Javascript裏發送日誌消息的二進制.NET程序集brary:一個角模塊,用於查看和控制日誌

我們需要發佈這些組件,使得它清楚地向包的用戶,他們屬於一起的方式UI組件,併發布和版本一起(即服務器庫的0.8版不能與0.9版的Web客戶端庫一起使用)。

我們嘗試:

起初,我們認爲堅持本地工具 - 即發佈使用的NuGet使用NPM的角模塊的.NET庫,和。

但是,這種方法使得它很難保持在.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 

這工作 - 但感覺就像我們對糧食工作。

問題:

我們正朝着正確的方向走嗎?發佈多平臺軟件包是否有更好的工具或方法?

+0

不知道npm與.Net的東西工作,但它聽起來很哈哈。 Nuget可以管理Javascript位。 – DavidG

回答

0

我不認爲這是開箱即用的,你必須自己動手。

你有3個選擇這裏:

  • 手動基準的DLL在您的項目。 (一個時間上只安裝)
  • 創建自己的安裝腳本,該DLL從node_modules my_install [module] =>npm install +如果DLL文件時,才需要update .csproj/project.json
  • 在在附加的DLL從node_modules文件夾啓動負載(僅適用於運行引用-時間)。
相關問題