2016-12-06 12 views
1

asp.net-coreプロジェクトをコンパイルする前にgitコマンドの出力をファイルに保存しようとしています。 (バージョン管理用)出力ファイルに出力し、最新のgitタグをすべきである私は、次のを持っている「project.json」ファイルでは、.NET project.jsonファイルのGITを使用してファイルに出力する

"scripts": { 
     "precompile": [ 
      "git describe --tags > version.txt" 
     ] 
     }, 

のgitコマンドは、通常のgit bashで正常に動作し、ファイルに保存します。しかし、Visual Studioでプロジェクトをコンパイルすると、のシンボルより大きな問題があるようです。これは何とか逃げなければならないのでしょうか?エラーが表示さ: "致命的な:ない有効なオブジェクト名>"

全エラー: 「C:\ DOTNETの\プログラムファイル(x86の)\ MSBuildの\マイクロソフト\ VisualStudioを\ v14.0 \ Microsoft.DotNet。 Common.Targets(262,5):エラー:致命的:有効なオブジェクト名ではありません> "

アイデア?

答えて

1

あなたは

"scripts": { 
    "precompile": [ 
     "bash -c 'git describe --tags > version.txt'" 
    ] 
    }, 
を試してみました
+0

ああ待ってくださいbashがWindows用にインストールされています。すぐにテストしましょう –

+0

これはうまくいった! Git Windowsをインストールするときにデフォルトで環境変数に 'bash'が追加されているように見えないので、私があなたのスナップに行った唯一の変更はbash exeを参照しているようです: "%ProgramFiles%\\ Git \\ bin \\ bash.exe -c 'git describe --tags> version.txt' " –

1

同じコマンドを含む(すなわちupdate_version.cmd)CMD-スクリプトを作成してみてください:

git describe --tags > version.txt 

はあなたproject.jsonを更新します。

"scripts": { 
    "precompile": "update_version.cmd" 
    }, 
+0

この作品のおかげでたくさん はここappsettingsversion.jsonファイルを生成するために、CMDです!私はコマンドファイルを作成せずに実行できるかどうかを誰かがおそらく知っているかどうかを知っていればすぐに答えることができます。 –

0

私がやったことは、Ivanが提案した、すなわちcmdスクリプトを実行していることと少し違いますが、JSONファイルも生成していますバージョン番号を付けてください。

dotnet coreの新しい設定オプション(OptionsConfigurationServiceCollectionExtensions)からJsonを読み込むことができるので、これは通常のテキストファイルよりも優れています。

質問に対する正確な回答ではありませんが、他の人に役立つ可能性があります。

project.json:

"scripts": { 
    "prepublish": [ "bower install", "dotnet bundle", "update_version.cmd" ] 
    } 

update_version.cmd:

for /f %%i in ('git describe --tags') do set version=%%i 
echo {^"VersionSettings^":{^"Number^": ^"%version%^"}} > appsettingsversion.json 
関連する問題