溶液(.sln
は)など、プレーンテキストファイル、ノーXML、JSON、..ですので、あなたはしかし、あなたが望むそれを解析することができます。
あなたは、Mac/MonoDevelopの/ Xamarin Studio用のVisual Studio経由でバージョンを追加する場合は、の.sln
でGlobalSection
で終わる:
GlobalSection(MonoDevelopProperties) = preSolution
description = Sushi's Most Amazing App
version = 3.14
EndGlobalSection
EndGlobal
注:MSBuildEmitSolution=1
を経て製造ソリューションmetaproj
は、この情報が含まれていません、組み込みのMSBuild機能を使用して解析することはできません。
は、ここにはbashを使用して(アウトバージョンを解析しますが、ツール(複数可)にご自身の選択を使用します。
export slnVersion=`grep "version =" SomeSolutionFile.sln | cut -f 2 -d "=" | sed -e 's/^[ \t]*//' | tr -cd "[:print:]"`
は今、あなたはENVに(バージョンを持っている。この例では変数)を
。あなたが
.cs
ファイルがある場合
(Global.Template
は)それは次のようになります。
namespace MovieMadness
{
public static class Globals
{
public const string SolutionVersion = "SushiHangover";
}
}
あなたはソリューションベースのバージョンとSushiHangover
を置き換えることができます:
の
export slnVersion=`grep "version =" SomeSolutionFile.sln | cut -f 2 -d "=" | sed -e 's/^[ \t]*//' | tr -cd "[:print:]"`
sed -e 's/SushiHangover/'"$slnVersion"'/g' Global.template > Global.cs
cat Global.cs
結果で:
namespace MovieMadness
{
public static class Globals
{
public const string SolutionVersion = "3.14";
}
}
あなたはMSBuildのプロセスの間にそれを得ることについて話していますか? – SushiHangover
私はそのような関数がコンパイル時間か実行時間かどうかわかりません。それは私にとって重要なことではありませんが、ソリューションの価値をコンパイル時に得ることができると信じています。 –