有没有办法打包一个仅包含 .SQL 文件的文件夹,而不必使用 Nuget.exe 将它们添加到项目中?
我知道您可以在 nuspec 中指定文件夹,但是这样做的过程是什么?我只能使用 .net 项目/应用程序制作包。
例如,如果我在内部创建一个名为 Database.nuspec 的 nuspec
F:\folder\trunk\Source\Database.nuspec
文件夹内
F:\folder\trunk\Source\Database
我想打包我的补丁脚本文件夹
F:\folder\trunk\Source\Database\Patch Scripts
在那个文件夹里我有
F:\folder\trunk\Source\Database\Patch Scripts\2.0
F:\folder\trunk\Source\Database\Patch Scripts\2.1
F:\folder\trunk\Source\Database\Patch Scripts\2.2
我是否需要将这些文件夹包含在我的 nuspec 中,或者 nuget.exe 是否足够聪明,可以为我打包它们?例如
更新:
解决方案 1:将每个文件夹包含到 nuspec
<files>
<file src="F:\folder\trunk\Source\Database\*.sql" target="Database" />
<file src="F:\folder\trunk\Source\Database\Patch Scripts\*.sql" target="Database\Patch Scripts\" />
<file src="F:\folder\trunk\Source\Database\Patch Scripts\2.0\*.sql" target="Database\Patch Scripts\2.0" />
</files>
但是我有很多补丁文件,将大约 40 个补丁文件写入 nuspec 会非常乏味,如果我找到解决方法,我会更新。
解决方案 2:ufuk-haciogullari 建议使用
*\*.sql
作为源,因为它们低一级,这是我想要的,但我需要保持文件结构完整,如果我只是写
<files>
<file src="F:\folder\trunk\Source\Database\*.sql" target="Database" />
<file src="F:\folder\trunk\Source\Database\Patch Scripts\*\*.sql" target="Database\Patch Scripts" />
</files>
它将所有返回存储到目标 Database\Patch Scripts\ 这不是我想要的结构。
更新:
<?xml version="1.0" encoding="utf-8" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>database</id>
<version>1.0.6</version>
<authors>me</authors>
<description>Description</description>
</metadata>
<files>
<file src="F:\folder\trunk\Source\Database\*.sql" target="Database\" />
<file src="F:\folder\trunk\Source\Database\Patch Scripts\**\*.sql" target="Database\Patch Scripts" />
</files>
这会打包我的解决方案并按照以前的格式存储文件。
nuget.exe pack "F:\folder\trunk\Source\Database\database.nuspec" -OutputDirectory F:\NuGetStore
更新:
回到这一点,如果您将目标留空,它将重新创建已经存在的相同文件夹结构,因此您不需要创建目录。
<?xml version="1.0" encoding="utf-8" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>database</id>
<version>1.0.6</version>
<authors>me</authors>
<description>Description</description>
</metadata>
<files>
<file src="F:\folder\trunk\Source\Database\*.sql" target="" />
<file src="F:\folder\trunk\Source\Database\Patch Scripts\**\*.sql" target="" />
</files>
这会打包我的解决方案并存储文件。
nuget.exe pack "F:\folder\trunk\Source\Database\database.nuspec" -OutputDirectory F:\NuGetStore