他のフォルダを含むNUGETパッケージ
-
26-12-2019 - |
質問
チームシティとタコを使ってパッケージを展開しています。私はTeamcityを使用してパッケージを作成し、その後、タコを使用して異なる環境に展開しています。私はTeamcityの別のステップとしてコピーする必要があるリソースフォルダを持っています。これで、そのフォルダをパッケージに含めるようにしたいので、そのパッケージを他のドメインのリモートサーバーにデプロイできます。メインプロジェクトのコンテンツフォルダにリソースフォルダを含めるには、次のファイルを定義しました。しかし、何が起こっているのかは、宛先にフォルダを作成するだけですが、プロジェクト内で他のファイルをコピーしないでください。私が望むすべてのものとして、私の公開ウェブサイトファイルと一緒にパッケージにリソースフォルダを含めることです。リソースフォルダをパッケージの一部にするだけです。
をお知らせください <?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
. 解決
あなたがoctopack を使っているなら、この現象は予想されます。 github のドキュメントを引用するには、
<files>
セクションが存在する場合、OctoPackはパッケージに追加のファイルを自動的に追加しようとしませんので、含めるファイルについて明示的になる必要があります。
このルートを行った場合は、Nuspecの<files>
セクションに含まれている他のすべてのファイルを指定する必要があります。
あなたがoctopack を使用していない場合、同様のルールが適用されます。 nuget.org
パッケージの作成に記載されている規則に従う場合は、.nuspecファイル内のファイルのリストを明示的に指定する必要はありません。ファイルを指定した場合、規則は無視され、.nuspecファイルにリストされているファイルだけがパッケージに含まれています。
更新
使用した1つのハイブリッド方法MSBuild Publishターゲットを使用して、Webサイトをローカルフォルダに構築&公開することです(.csソースのようなすべてのコンパイル時ファイルをフィルタアウトするため)、追加ファイルを削除することです。次に、ルートパブリッシュフォルダの下のすべてを梱包するための<file src="**/*.*" />
を含めます。ルートパス/ NUGET.EXEとの少しカスタマイズが必要ですが、それはそれを少しきわめくし、メンテナンスが少し少ないメンテナンスを行うかもしれません。
便利な情報あなたが始めるのを助けます。