gpt4 book ai didi

nuget 覆盖文件

转载 作者:行者123 更新时间:2023-12-03 21:32:11 25 4
gpt4 key购买 nike

是否可以强制 nuGet 包覆盖现有文件?我需要一种在 3 个类似项目中应用补丁(文件、dll、资源)的好方法,这可能是一个很好的解决方案。

最佳答案

它可以通过powershell和一个包依赖来完成......

我有一个为 ASP.NET MVC 创建的 NuGet 包,它包含我想添加到标准 Mvc 项目的所有文件(DisplayTemplates、EditorTemplate、Extensions、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-Prep”成为“Company.WebMvc”的依赖项。为什么?因为 Install.ps1(通常)在 NuGet 添加内容文件夹中的文件后运行。我需要它先删除文件,然后添加新文件。所以当你打电话...

安装包 Company.WebMvc

Company.WebMvc-Prep 首先安装,因为它是一个依赖项(运行 Install.ps1)

然后安装 Company.WebMvc 来添加您的内容。

总而言之...你 可以通过 NuGet 包覆盖项目中的现有内容。

附言请记住,您还可以使用部分类来隔离 NuGet 包代码与项目特定代码。

关于nuget 覆盖文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9100410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com