2017-08-11 57 views
0

我正在移動一個項目,使其成爲nuget包。該項目中有預處理器指令來檢查開發人員在哪個自定義構建配置中。如果他們在構建配置A中,則它將取消A服務設置(如果它們在B中),則它將取消B的設置。問題是,當我打包這個服務,並且nuget包在一個單獨的進程中被使用,並且使用相同的構建配置時,它不尊重devs構建配置選項,因爲nuget已經被編譯了,無論它設置了什麼設置。已經將它設置爲一個nuget包中的3個dll。Nuget與Build配置

有沒有辦法根據自定義生成配置選擇使用哪個nuget dll而無需修改csproj代碼?

+0

如果這些配置如此不同,則生成3個具有不同ID的獨立nuget軟件包也可能是一個選項。或者外部配置(=>消耗項目需要設置庫)等。 –

+1

@Dakota Kincer,這個問題的任何更新?你能從答案中得到有用的信息嗎?如果沒有,請讓我知道免費。 –

+0

我已將答案標記爲答案。目前,我們目前無法將我們的項目移至nuget,並選擇暫時將其作爲項目參考。未來有一些方法可以在構建配置之間切換。我們目前正在將其用作指向生產環境和登臺環境的開關。 –

回答

1

有沒有辦法根據自定義構建配置選擇使用哪個nuget dll而無需修改csproj代碼?

這是不支持據我所知與NuGet。您只能在一個項目文件中使用一個具有特定構建配置的NuGet包。而且,NuGet現在只支持多個.NET框架版本,不支持多種配置。

如果您有不同的構建配置,您可以有不同的NuGet包。該項目由具有特定平臺項目的圖書館作者特定使用,這些項目需要不同的NuGet包。

此外,不使用NuGet將程序集添加到項目可能會更簡單。只需使用NuGet到pack the package with multiple dlls文件,然後直接參考您需要的條件和組件。