簡體   English   中英

是否可以將 nuget 包添加為僅運行時依賴項?

[英]Is it possible to add a nuget package as runtime only dependency?

我正在處理以下項目:

  • MyFramework.csproj(類庫)

  • MyCustomerApp.csproj(類庫)

    參考我的框架

  • MyLauncher.csproj(可執行程序)

    參考 MyLauncherDependency.nupkg

MyCustomerApp.csproj 是“可運行”項目,其工作方式如下:

  1. MyLauncher.exe 從 MyLauncher 項目復制到 MyCustomerApp 的輸出
  2. 運行 MyLauncher.exe 時,它​​使用Assembly.Load(..)加載 MyCystomerApp.dll

關於為什么我們有這個機制,有一個我不會討論的特定原因 - 現在認為它超出了范圍。

現在問題來了; MyLauncherDependency 是 MyLauncher 的依賴項,但不是 MyCustomerApp 的依賴項。 因此 MyLauncherDependency 不是 MyCustomerApp 的編譯時依賴項 - 但它是運行時依賴項 - 因為它在運行時需要 MyLauncherDependency.dll。

我不想將 MyLauncherDependency.nupkg 添加到 MyCustomerApp,因為我不想讓工程師從 MyCustomerApp 中的 MyLauncherDependency 訪問類。

所以我的問題是:如何將 MyLauncherDependency.nupkg(或 MyLauncherDependency.nupkg)添加到 MyCustomerApp 作為僅運行時的依賴項?

你必須使用Nuget嗎?

MEF(托管擴展框架)非常適合在運行時加載插件。

https://docs.microsoft.com/en-us/dotnet/framework/mef/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM