3

Nuget.exeを使用してプロジェクトに追加する代わりに、.SQLファイルのみのフォルダーをパッケージ化する方法はありますか?

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

それらは1レベル下にあるため、ソースとして、これは私が望むことを実行しますが、ファイル構造をそのまま維持する必要があります。

<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
4

1 に答える 1

2

nuspecファイルを作成し、それらのファイルを明示的に記述することができます。

<?xml version="1.0" encoding="utf-8" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>MyPackage</id>
    <version>1.0.0</version>
    <authors>me</authors>
    <description>Description</description>
  </metadata>
  <files>
    <file src="*.sql" target="Content\SqlFiles" />
  </files>
</package>

次に、nuspecファイルに対してpackコマンドを実行します。

NuGet.exe pack MyPackage.nuspec
于 2013-03-05T13:31:17.013 に答える