2014-01-07 66 views
2

我們在ASP.net/MVC項目上使用FluentMigrator(NuGet程序包)來維護對SQL Server的數據庫更改。NuGet程序包依賴關係和構建/部署服務器

什麼是「正確」的方式來分發NuGet包與其他構建工件以供部署期間使用?我只需要「包」文件夾?

我希望有一個響應,而不是「使用包管理器並在PROD上安裝Nuget包」。

我不想在部署期間從本地或非本地來源獲取軟件包,我想使用我的編譯代碼包含正確的軟件包。

回答

2

正確的方法是在項目building之前拉下包,然後假設您的項目引用程序集以使Copy Local爲true,它將包含在構建輸出中,應該將其存儲爲工件在您的CI工具中。

在構建/部署過程中,您絕對不應該做與NuGet相關的任何事情。

+0

我們使用Fluent Migrator,除了爲構建引用的dll(即CopyLocal = True)之外,我們還使用包中的exe文件(以及它所依賴的文件)來推動我們的數據庫更改。爲了更清楚地說明,我們對包有一個構建時依賴性,但我們也對包有一個部署時間依賴性。我不想在部署過程中拉下軟件包,我想將其與我的應用程序分發。 – DonBecker

+0

您可以將.exe文件的生成操作設置爲VS屬性窗口中的內容嗎?這樣它將被視爲一個獨立的文件幷包含在輸出中。您也可以將其作爲資源嵌入,在運行時將其寫入磁盤 - 取決於您需要的是什麼。 –