検索
リンク
タグ
jQuery
ASP.NET MVC
LINQ
SQL Server
Fizz-Buzz
AJAX
JavaScript
Azure
.NET
WebMatrix
Visual Studio
ASP.NET Core
F#
Plone
AngularJS
ASP.NET
ADO.NET Entity Framework
ライトニングトーク
Selenium
C#
カテゴリ
最新の記事
最新のコメント
記事ランキング
最新のトラックバック
以前の記事
2019年 11月 2019年 10月 2019年 09月 2019年 08月 2019年 07月 2019年 06月 2019年 05月 2019年 04月 2019年 03月 2019年 02月 2019年 01月 2018年 12月 2018年 11月 2018年 10月 2018年 09月 2018年 08月 2018年 07月 2018年 06月 2018年 05月 2018年 04月 2018年 03月 2018年 02月 2018年 01月 2017年 12月 2017年 11月 2017年 10月 2017年 09月 2017年 08月 2017年 07月 2017年 06月 2017年 05月 2017年 04月 2017年 02月 2017年 01月 2016年 12月 2016年 11月 2016年 10月 2016年 09月 2016年 08月 2016年 07月 2016年 06月 2016年 05月 2016年 04月 2016年 03月 2016年 02月 2016年 01月 2015年 12月 2015年 11月 2015年 10月 2015年 09月 2015年 08月 2015年 07月 2015年 05月 2015年 04月 2015年 03月 2015年 02月 2015年 01月 2014年 12月 2014年 11月 2014年 10月 2014年 09月 2014年 08月 2014年 06月 2014年 04月 2014年 03月 2014年 02月 2014年 01月 2013年 12月 2013年 10月 2013年 09月 2013年 08月 2013年 07月 2013年 06月 2013年 05月 2013年 04月 2013年 03月 2013年 02月 2013年 01月 2012年 12月 2012年 11月 2012年 10月 2012年 09月 2012年 08月 2012年 07月 2012年 06月 2012年 05月 2012年 04月 2012年 03月 2012年 02月 2012年 01月 2011年 12月 2011年 11月 2011年 10月 2011年 09月 2011年 08月 2011年 07月 2011年 06月 2011年 05月 2011年 04月 2011年 03月 2011年 02月 2011年 01月 2010年 12月 2010年 11月 2010年 10月 2010年 09月 2010年 08月 2010年 07月 2010年 06月 2010年 05月 2010年 04月 2010年 03月 2010年 02月 2010年 01月 2009年 12月 2009年 10月 2009年 09月 2009年 07月 2009年 06月 2009年 05月 2009年 04月 2009年 03月 2009年 02月 2009年 01月 2008年 12月 2008年 11月 2008年 10月 2008年 09月 2008年 08月 2008年 07月 2008年 06月 2008年 05月 2008年 04月 2008年 03月 2008年 02月 2008年 01月 2007年 12月 2007年 11月 2007年 04月 2007年 03月 2007年 02月 2007年 01月 2006年 11月 2006年 10月 2006年 09月 2006年 08月 2006年 07月 ファン
ブログジャンル
画像一覧
|
1 2018年 07月 23日
何を言っているのかわからないかもしれないが、とにかく記す。 こんな感じの、空のフォルダをコンテンツに含む NuGet パッケージを作ったとする。 ![]() この NuGet パッケージを作るための .nuspec ファイルはこんな感じで、
上記、file 要素で指定している Content フォルダの中に、収録の目的である空のフォルダ "Controllers" を設けてある (下図)。 ![]() これで、(nuget.exe が PATH 上にある前提で) "nuget.exe pack Foo.nuspec" を実行することで、空のフォルダをコンテンツに含む NuGet パッケージ "Foo.0.1.0.nupkg" ができあがる。 めでたしめでたし、なのだが... Git では空のフォルダはバージョン管理下に登録されないこのような NuGet パッケージ作成プロジェクトを Git のバージョン管理下においたとする。 ところがである。 Git はその仕様上、空のフォルダはバージョン管理のリポジトリに登録できないのだ。 なので、このプロジェクトの Git リポジトリを clone すると、空のフォルダ (この例では "Content"、及びそのサブフォルダの "Controllers") が復元されない。 その結果、clone した先の作業フォルダで NuGet パッケージ生成を実行しても、下記のようなエラーになってしまう。
Git で空のフォルダをバージョン管理に含める方法自分が知る限り、Git で空のフォルダをバージョン管理に含める直接的な方法は存在しない 。 その代わり、".gitignore" や ".gitkeep" など、何かしらのファイルを配置し、そのファイルを Git バージョン管理に含める事をもって、clone 先でも確実に当該フォルダが作成されるようにする、という回避策が一般的かと思う。 ということで、この NuGet パッケージ作成プロジェクトでも、"Content\Controllers" フォルダに ".gitkeep" を配置し、これを Git バージョン管理に追加してみる (下図)。 ![]() そうすると、当然のことながら、このリポジトリの clone 先でも "Content\Controllers" フォルダが再現され、nuget pack コマンドが成功するようになった。 しかし、である。 今度は、できあがった NuGet パッケージに、".gitkeep" ファイルが含まれてしまった (下図)。 ![]() これでは、この NuGet パッケージをインストールすると、本当は空っぽのフォルダができあがるのが期待値であるところ、".gitkeep" ファイルが「ゴミ」ファイルとして配置されてしまう。 exclude 指定してみるが...それではということで、.nuspec ファイルの指定にて、".gitkeep" を対象ファイルから除外してみた。
これでイケるだろうと思いきや、なんと、下記エラーとなってしまった。
ぐぬぬ。 exclude 指定でもなく、".gitkeep" ファイルでもなくて...あーでもないこーでもないと、検索しまくっているうちに、下記の NuGet の Issue にたどり着いた。 なんと、"_._" というファイルは、NuGet パッケージ作成の際に無視されるらしい。 マジか。 半信半疑で下図のとおり配置し、nuget pack コマンドを実行したところ... ![]() ちゃんと、"_._" ファイル抜きで、空のフォルダを含むコンテンツが、.nupkg 内に再現できた! ![]() "_._" ファイルは、Git にとっては何の変哲もない "ただのファイル" に過ぎないので、普通に Git バージョン管理に登録できる。 これで万事解決と相成った。 ▲
by developer-adjust
| 2018-07-23 22:33
| .NET
|
Comments(0)
2013年 05月 15日
自分のパッケージのDL数の内訳、気になりません?.NET 系の開発におけるパッケージマネージャ、NuGet。この NuGet のパッケージを登録、公開するのが NuGet Gallery, nuget.org だ。 この nuget.org には自分が登録したパッケージを一覧で表示するページがあり、ここで各パッケージのダウンロード数を知ることができる。 ![]() グラフで表示できたらいいのに、と思いつつ、たまに Excel にコピーペーストしてグラフ化してた。 だがしかし、当然のことながら毎度この作業を行うのは苦痛。 Excel には Web クエリという便利な機能があるが、この事例ではフォーム認証画面があるせいで自動更新できない。 JavaScript 注入!しかしある日思いついた。このページ上にグラフ(バーチャート)を描く、そんな JavaScript を実行してやればよいのではないか、と。 ということでやってみた。 nuget.org の "Manage My Packages" ページを開き、下記 JavaScript リンクをアドレスバーから実行。 javascript:(function(d){var s=d.createElement('script');s.type='text/javascript';s.src='https://goo.gl/5GS0L';d.body.appendChild(s);})(document)Google 短縮 URL に登録してあるのは、GitHub に公開した、諸々の処理を行う JavScript ファイルへのリンク。この JavaScript をページ内に注入して実行するわけだ。 結果は上々。 ![]() とりあえず満足。 詳しくは GitHub にて。 Visualize NuGet My Packages Download Count https://github.com/jsakamoto/VisualizeNuGetMyPackagesDownloadCount ▲
by developer-adjust
| 2013-05-15 20:46
| その他IT系
|
Comments(0)
1 |
ファン申請 |
||