是否可以強制nuGet包覆蓋現有文件?我需要在3個類似的項目中應用補丁(文件,DLL,資源)的一種很好的方式,並且通過這可能是一個很好的解決方案。nuget覆蓋文件
回答
它可以使用PowerShell和軟件包的依賴關係來完成...
我有我的ASP.NET MVC創建NuGet包它有所有我想要添加到標準的MVC項目中的文件( DisplayTemplates,EditorTemplate,擴展,BaseController等)。假設它被稱爲「Company.WebMvc」
我創建了另一個名爲「Company.WebMvc-Prep」的NuGet包,它具有Install.ps1腳本,可以從標準Mvc項目中刪除任何不需要的內容。下面是刪除現有腳本的代碼示例文件...
param($installPath, $toolsPath, $package, $project)
#Remove Script Files
$scripts = $project.ProjectItems | Where-Object { $_.Name -eq "Scripts" }
if ($scripts) {
$scripts.ProjectItems | ForEach-Object { $_.Delete() }
}
我然後做出「Company.WebMvc,準備」「Company.WebMvc」的依賴。爲什麼?因爲在NuGet添加內容文件夾中的文件後,Install.ps1(通常)會運行。我需要它先刪除文件然後添加新的文件。所以,當你打電話......
安裝,包裝Company.WebMvc
Company.WebMvc,準備第一次安裝,因爲它是一個依賴(運行Install.ps1)
然後安裝Company.WebMvc它會添加您的內容。
總之和它是...你可以可以通過NuGet包覆蓋項目上的現有內容。
P.S.請記住,您也可以使用部分類來分離NuGet包代碼與項目特定代碼。
今天不支持覆蓋內容文件。
任何想法如果/何時?我們希望使用nuget來協助我們所依賴的共享(第三方)配置的分發/同步。如果
如果沒有你應該添加一個 – davidfowl 2013-03-21 21:32:39
http://nuget.codeplex.com/workitem/278-似乎是爲vNext(2.3):) – 2013-03-21 22:51:27
正如David福勒建議在本次討論 http://nuget.codeplex.com/discussions/252305 您可以在臨時文件夾部署文件,然後通過使用PowerShell腳本在原來的位置覆蓋它們。
儘管您顯然無法爲該軟件包的所有安裝指定此選項(根據其他答案),但實際上可以將其指定爲單個安裝。安裝軟件包:
Install-Package com.company.mypackage -FileConflictAction Overwrite
這將自動覆蓋所有在安裝過程中發生衝突的文件。
感謝您的想法,但它不適合我。根據[官方文檔](https://docs.microsoft.com/en-us/nuget/tools/ps-ref-update-package)-FileConflictAction將應用於項目中引用的文件。不幸的是,這不是我的情況。 – 2018-02-06 08:42:10
- 1. 覆蓋Nuget中的RegularExpressionAttribute.IsValid System.ComponentModel.Annotations
- 2. 覆蓋文件
- 3. 力覆蓋文件
- 4. Serilog覆蓋文件
- 5. 覆蓋XML文件
- 6. 覆蓋js.erb文件
- 7. VBScript覆蓋文件
- 8. 文件被覆蓋
- 9. Java覆蓋文件
- 10. 覆蓋log4j.properties文件
- 11. Java覆蓋文件
- 12. 覆蓋.txt文件
- 13. Docker覆蓋文件?
- 14. Uglifyjs覆蓋文件
- 15. 覆蓋源文件
- 16. 從CLI覆蓋NuGet包版本
- 17. Xamarin.Android如何覆蓋nuget庫的風格?
- 18. 覆蓋文本文件
- 19. 覆蓋文檔文件
- 20. Python中的文件覆蓋
- 21. 覆蓋ANT屬性文件
- 22. 不覆蓋JSON文件
- 23. unix gcc文件覆蓋
- 24. setContentView覆蓋xml文件
- 25. 停止覆蓋XML文件
- 26. 從svn覆蓋文件:externals
- 27. 用File.CreateText覆蓋文件(C#)
- 28. 如何覆蓋.mdf文件
- 29. 覆蓋mongoid文件找到
- 30. 覆蓋adminhtml PHTML文件
非常感謝。這正是我所期待的。沒有想過依賴路線。這也確保我明確指出哪些文件需要刪除和更新,哪些文件不太容易出錯。 – keeney 2012-02-29 09:27:49
我嘗試過這種解決方案,但在我的情況下,每次安裝新版本的軟件包時,我都想刪除舊文件並將新文件放在適當位置。這要求我每次更新主包時都要更新Prep版本...我想知道是否可以避免這種情況。 – rekna 2012-09-07 13:17:18