C# のコード内でファイル リビジョン キーワードを使用する構文を知っている人はいますか? SQL Server での使用方法は知っていますが、正しい構文を取得できないようです。バージョンを表示したいファイルにプロパティを既に追加しています。
2 に答える
$LastChangedRevision: $
SVNリビジョンを追加するには、C#ファイルに含まれている必要があります。svn:keywords
ただし、その値を展開するファイルのプロパティも正しく設定する必要があります。
たとえば、次のようにすると、リビジョンを含む文字列になります。
string revision = "$LastChangedRevision: $";
svn:keywords
プロパティにはLastChangedRevision
、スペースで区切られた値のリストにを含める必要があります。
cs
TortoiseSVN構成を編集することにより、拡張機能に対してこれを自動化できます。これを行うには、TortoiseSVNエクスプローラーメニューに移動し、を選択しますSettings...
。次に、General
タブで、のEdit
横にあるボタンをクリックしますSubversion configuration file:
。
下にスクロールして、このような行を[auto-props]
セクションに追加します(単なる例として、キーワードの数を増やしたり減らしたり、他のプロパティを設定したりすることもできます)。
*.cs = svn:keywords=LastChangedDate LastChangedBy LastChangedRevision Id URL;
SubWCRev.exeを呼び出して、ビルド前のResources.resxにバージョン番号を書き込むように取得し、後でクリーンアップして、他のスクリプトをいじくり回す必要がないようにすることができます。svnは繰り返し表示されません。 Resources.resxが変更されました。
SubWCRev.exeが認識するプレースホルダーを使用して、文字列リソースをResources.resxファイルに追加します。次に例を示します。
BuildTime = $ WCNOW $
CurrentSVNRevision = $ WCREV $
HasLocalModifications = $ WCMODS?(ローカル変更が検出されました):$
次のプレビルドを追加します(Resources.resxをバックアップし、SubWCRev.exeでプレースホルダーを必要な値に置き換えます)。
/ Y "$(ProjectDir)\ Properties \ Resources.resx" "$(ProjectDir)\ Properties\Resources.resx.save"をコピーします
"C:\ Program Files \ TortoiseSVN \ bin \ SubWCRev.exe" "$(SolutionDir)\" "$(ProjectDir)Properties \ Resources.resx" "$(ProjectDir)Properties\Resources.resx"を呼び出します
次のビルド後を追加して、Resources.resxを復元します。
/ Y "$(ProjectDir)\ Properties \ Resources.resx.save" "$(ProjectDir)\ Properties\Resources.resx"を移動します
ビルド後のイベントを常に実行するように設定します(ビルドが失敗した場合でも)
コード内で必要な場所でResources.CurrentSVNRevisionなどを使用します。
私は多くの解決策を検討しましたが、これは私が見つけた他のどの解決策よりもはるかに単純で堅牢であることがわかりました。それが他の誰かを助けることを願っています。