問題タブ [nuspec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
icons - NuGet パッケージのアイコンが更新されない
Team city を内部 NuGet リポジトリとして使用しています。nuspec ファイルにアイコン URL を追加し、コンテンツ ブラウジングが有効になっている IIS にアイコン ファイルを配置しました。Visual Studio の NuGet マネージャーにアイコンが表示されます。
アイコンを更新したいので、IISのアイコンを更新すればいいと思ったのですが、アイコンが更新されません。Team city からパッケージの新しいバージョンをビルドしようとしましたが、アイコンが更新されません。
ある種のキャッシングが行われていますか?アイコンはいつ URL から取得されますか? それはパッケージ化されていますか、それともパッケージ マネージャーですか?
c# - .nuspec でパッケージの依存関係を制限する (例: '< 0.7' は機能しない)
2 つの C# ライブラリがあります。
- メインライブラリ
- 依存関係ライブラリ(バージョン 0.6 および 0.7 でリリース)
main-libraryには、.nuspec で次のものが定義されています。
Nuget Versioningのドキュメントによると、これは依存関係ライブラリをバージョン 0.6 に制限する必要があります。Nuget.org のリストを調べると、次のようになります。
まさに予想通り。それでも、Visual Studio は依存関係ライブラリを 0.7 に更新することを提案しており、ためらうことなく実行しています。同様の状況でエラーが発生したことがあります。パッケージの制限により更新が停止されているというメッセージが表示されました。これが私が望んでいることです。ここで何か不足していますか?
msbuild - csprojからのNuget packの既存のビルド
私のCIビルドには、リリースビルドを.\.output\_Build
フォルダーに出力するMSBuildがあります。この場合、このフォルダーには、nupkg にパッケージ化する exe があります。
私が実行すると:
のフォルダBasePath
です。私は得る:OutputPath
msbuild -OutputPath
これは、nuget が csproj からデバッグ構成の OutputDirectory を読み取り、パッケージ化するものを正しく見つけられなかったことを示唆しているようです。-BasePath
パラメータがアーティファクトを探す場所を教えてくれると思っていましたが、そうではないようです。パッケージ化にcsprojファイルを使用するときに、csprojのパスをたどらないようにnugetに指示するにはどうすればよいですか? パックには csproj ファイルを使用する必要があります。
c# - 非推移的なパッケージの依存関係?
別のパッケージ Y に依存するパッケージ X があります。デフォルト (Visual Studio 2015 Upd3 + nuget 3.5) では、パッケージ X を参照するプロジェクトは、パッケージ Y も参照して更新されます。問題は、X の顧客が Y への参照をまったく必要としないことです。これは、パッケージ Y の API が顧客に公開されておらず、公開されるべきではないためです。
したがって、予想される動作は次のとおりです。パッケージ X への参照を追加した後、ビルド時にパッケージ Y のコンテンツを出力フォルダーにコピーする必要がありますが、パッケージ Y をプロジェクト参照に追加することはできません。
そうする方法はありますか?
理論的には、インフラストラクチャ パッケージ Y のソースをプロジェクト X に含めることができます (どちらのプロジェクトも MIT ライセンスの下でオープンソースです) が、多かれ少なかれ標準的なアプローチを使用したいと思います。
必要なケースの例:
Microsoft.DiaSymReader
現在調査中のケース: PDB ファイルがソース (参照パッケージ)と一致することを確認するテスト ヘルパーを含む nuget パッケージ。Microsoft.DiaSymReader
すべてのテスト プロジェクトでアセンブリを参照する必要はありません。多かれ少なかれ理論的なもの (今のところ問題ではありませんが、プロジェクトが本番環境にプッシュされる場合は問題になるでしょう): Roslyn を使用してスクリプトをコンパイルおよび実行するカスタム スクリプト エンジン。スクリプト エンジンを使用するすべてのプロジェクトで、Roslyn アセンブリへの参照は必要ありません。
後者の場合は、明らかに roslyn ソースをプロジェクトにマージできず、パッケージの一部として roslyn バイナリを配布することもできないため、さらに悪化します。
どんな提案も大歓迎です!
nuget - nuspec で構成固有のフォルダーを指定する方法
私が見た例では、nuspec ファイルの場所に対する相対パスを使用して、含めるファイルを指定しています。
ビルド構成に応じて適切なソースディレクトリを使用するようにこれを指定する方法はありますか:つまり:
- -Prop Configuration=Debug でパッケージ化する場合は bin\Debug
- -Prop Configuration=Release でパッケージ化する場合は bin\Release
xml - MSBuild: xpath で xml を更新する方法
MSBuild スクリプトを使用して nuspec xml のリリース ノートを更新するにはどうすればよいですか。
これで、XmlUpdate を使用して MSBuild ターゲットを作成できました。
これは正常に機能しますが、Nuspec ファイルに既にエントリが含まれている場合のみです。
releaseNotes がまったく存在しないファイルを処理するにはどうすればよいですか? どうにかして xpath から数値を取得し、それがゼロの場合は別の関数を使用して xml を更新できますか?
PS: MSBuildTasks の NuGetPack 拡張機能は、パッケージ メタデータでは機能しません。