0

teamcity と octopus を使用してパッケージをデプロイしています。teamcity を使用してパッケージを作成し、Octopus を使用してさまざまな環境にデプロイしています。teamcity の別のステップとしてコピーする必要がある Resources フォルダーがあります。次に、そのフォルダーをパッケージに含めて、そのパッケージを他のドメインのリモート サーバーに展開できるようにします。次のファイルを定義して、リソース フォルダーをメイン プロジェクトのコンテンツ フォルダーに含めます。しかし、起こっていることは、宛先にフォルダーを作成するだけで、プロジェクト内の他のファイルをコピーしないことです。私が望むのは、公開Webサイトファイルと一緒にパッケージにリソースフォルダーを含めることだけです。リソースフォルダーをパッケージの一部にしたいだけです。ガイドしてください

 <?xml version="1.0" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 <metadata>
<id>Services</id>
<version>1.0.0.0</version>
<authors></authors>
<owners></owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Services.nuspec build package</description>
<releaseNotes />
 </metadata>
 <files>
  <file src="..\Resources\**\*.*" target="Content\Resources" />
</files>
</package>

上記のコードを使用してパッケージを作成した後のパッケージの内容:-

 . _rels
 . package
 . content\resources 
 . [content_type
 . Services.nuspec
4

1 に答える 1

0

OctoPack を使用している場合、この動作は予期されたものです。GitHubのドキュメントを引用するには:

セクションが存在する場合<files>、OctoPack は余分なファイルをパッケージに自動的に追加しようとしないため、含めたいファイルを明示する必要があります。

<files>この方法を使用する場合は、nuspecのセクションに含める他のすべてのファイルを指定する必要があります。

OctoPack を使用していない場合、同様のルールが適用されます。nuget.org のドキュメントを参照してください

「パッケージの作成」で説明されている規則に従う場合、.nuspec ファイルでファイルのリストを明示的に指定する必要はありません。ファイルを指定すると、規則は無視され、.nuspec ファイルにリストされているファイルのみがパッケージに含まれることに注意してください。

アップデート

私が使用したハイブリッドな方法の 1 つは、MSBuild Publish ターゲットを使用して Web サイトをビルドしてローカル フォルダーに公開し (.cs ソースなどのコンパイル時のファイルをすべて除外するため)、追加のファイルをドロップしてから、単純にを含めて<file src="**/*.*" />、ルートの発行フォルダーの下にすべてをパックします。ルート パス / nuget.exe を使用して少しカスタマイズする必要がありますが、プロセスが少しすっきりし、メンテナンスがわずかに少なくなる可能性があります。

始めるのに役立つ有用な情報がここにあります。

于 2014-06-05T11:32:24.343 に答える