13

ビルド中に AssemblyInfo.cs ファイルが自動的に生成されます。.csproj ファイルの一部を次に示します。

<PropertyGroup>
    <Major>2</Major>
    <Minor>3</Minor>
    <Build>0</Build>
    <Revision>0</Revision>
</PropertyGroup>
<Target Name="BeforeBuild">
    <SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="C:\Program Files\VisualSVN Server\bin">
        <Output TaskParameter="Revision" PropertyName="Revision" />
    </SvnVersion>
    <AssemblyInfo CodeLanguage="CS" 
                  OutputFile="$(MSBuildProjectDirectory)\Properties\VersionInfo.cs" 
                  AssemblyVersion="$(Major).$(Minor).$(Build).$(Revision)" 
                  AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)"/>
</Target>

しかし、 .csproj ファイルの外部MajorMinorプロパティを指定する方法がわからないので、バージョンを変更するたびにプロジェクトをアンロードする必要はありません。プロジェクト内の特別なテキスト ファイルからそれらをロードするか、プロジェクト プロパティ ダイアログで何らかの方法で設定する必要があります。助言がありますか?

4

5 に答える 5

16

ReadLinesFromFile別のファイルでバージョンを作成するために使用されます。

<ReadLinesFromFile File="Properties\Version.txt">
    <Output TaskParameter="Lines" ItemName="Ver" />
</ReadLinesFromFile>
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="C:\Program Files (x86)\VisualSVN Server\bin">
    <Output TaskParameter="Revision" PropertyName="Revision" />
</SvnVersion>
<Message Text="Version: @(Ver).$(Revision)" />
<AssemblyInfo 
    CodeLanguage="CS" 
    OutputFile="$(MSBuildProjectDirectory)\Properties\VersionInfo.cs" 
    AssemblyVersion="@(Ver).$(Revision)" 
    AssemblyFileVersion="@(Ver).$(Revision)"/>
于 2011-06-09T16:01:25.010 に答える
0

外部ツールを使用できます

<Exec Command="newversion incMinor AssemblyInfo.cs > newversion.log" /> 
于 2011-04-28T07:14:30.717 に答える
0

それがあなたの懸念であるVSによるcsprojファイルのロックである場合、この質問に対する私の答え-Visual Studioでビルド定義のキャッシュをオフにする方法が役立つかもしれません。

BeforeBuild タスクの内容 (バージョン プロパティグループを含む) を別の proj ファイルに移動し、MSBuild タスクで呼び出すことができます (上記のリンクされた回答の例で生成されたランダムなファイル名を使用)。これにより、csproj ファイルをアンロード/ロードすることなく、バージョン番号のプロパティを手動で編集できます。

于 2011-06-05T19:47:37.557 に答える
0

プロパティ ページを使用して、プロジェクトのプロパティ シート ダイアログでこれらのプロパティを設定できるようにします。

プロパティ ファイルを作成し、プロジェクト ファイルを編集して (1 回だけ)、インポート ディレクティブをプロパティ ファイルに追加する必要があります。ここに例があります

于 2011-04-21T15:44:53.733 に答える