MSBuildのバージョン管理アセンブリ情報ファイルのソリューションファイルの場所を指定する方法

StackOverflow https://stackoverflow.com//questions/25075651

質問

私は一日ずつこだわりでしたが、運がなかった。以前に作業するために使用されるMSBUILDを使用したアセンブリバージョン管理は、プロジェクトのルート内の別のフォルダにソリューションファイルを移動しています。それ以来、バージョン管理は機能していません。

はプロジェクト構造

です。

コードフォルダ

- > PROJECTAフォルダ

- > ProjectBフォルダ

- > ProjectCフォルダ

- >ソリューションフォルダ

*以前はソリューション(.SLN)ファイルがコードフォルダの下にありました。

MSBUILDを実行するときは、以下の警告を受けます。

アセンブリ情報ファイルが提供されていない

下の

はビルドログのカットダウンバージョンです。

ワークスペース

を削除します

00:00ソースの削除ディレクトリ

00:00作業スペースの作成

01:14ワークスペースを取得

00:00バージョン管理アセンブリ

00:00 AssemblyVersionおよびAssemblyFileVersionアセンブリバージョン 処理:ビルド定義に含まれているバージョン番号パターンを使用する

00:00すべてのアセンブリプロパティ値を設定する(B)バージョン管理アセンブリを 以下のパターン:AssemblyVersion(1.0.0.0)および AssemblyFileVersion(yyyy.mm.dd.b)アセンブリ情報ファイルはありませんでした

を提供
下の

は、上記のログを作成するMSBuildタスクです。

  <local:VersionAssemblyInfoFiles 
    AssemblyFileVersionPattern="[AssemblyFileVersionPattern]" 
    AssemblyInfoFilePattern=" AssemblyInfoFilePattern]" 
    AssemblyVersionPattern="[AssemblyVersionPattern]" 
    BuildDirectory="[BuildDirectory]" BuildNumberPrefix=" 
   [BuildNumberPrefix]" BuildSettings="[BuildSettings]" 
    DisplayName="Versioning Assemblies" 
    DoCheckinAssemblyInfoFiles="[DoCheckinAssemblyInfoFiles]" 
    ForceCreateVersion="[ForceCreateVersion]" 
    sap:VirtualizedContainerService.HintSize="200,22" 
    mva:VisualBasic.Settings="Assembly references and imported namespaces 
   serialized as XML namespaces" UseVersionSeedFile="[UseVersionSeedFile]" 
   VersionSeedFilePath="[VersionSeedFilePath]" Workspace="[Workspace]" 
   xmlns:local="clr-namespace:TfsBuild.Versioning.Activities;
   assembly=TfsBuild.Versioning.Activities">

      <sap:WorkflowViewStateService.ViewState>
        <scg:Dictionary x:TypeArguments="x:String, x:Object">
          <x:Boolean x:Key="ShouldCollapseAll">False</x:Boolean>
          <x:Boolean x:Key="ShouldExpandAll">True</x:Boolean>
        </scg:Dictionary>
      </sap:WorkflowViewStateService.ViewState>
 </local:VersionAssemblyInfoFiles>
.

私はまた、提案されたここに見た。 誰かが私を正しい方向に向けてください。私はMSBUILDの専門家ではありません。

事前にありがとうございました。

役に立ちましたか?

解決

私は以下の回避策を実行しました。 すべてのソリューションをプロジェクトのルートレベルに移動するオプションはありません。

a。新しいソリューションを作成するi.e.e.E.Lib.Versions.SLN. このソリューションはルートフォルダの下に住んでいて、プロジェクトの残りのバージョン管理にのみ使用されます。

b。 someapp.lib.versioning.slnのプロジェクト(.csproj)は、残りのプロジェクトと同じレベルに住んでいます。

だから新しい構造は

です

コードフォルダ

- > PROJECTAフォルダ

- > ProjectBフォルダ

- > ProjectCフォルダ

- >ソリューションフォルダ

- > someapp.lib.versioning.sln

- > someapp.lib.versioningフォルダ

c。これで、Solutionsフォルダ内の解決策の1つからsomeapp.lib.version.projを参照してください。これはsomeapp.lib.versioning.projにはヒットに2つの解が付属しています。

d。ビルドバージョンを表示するプロジェクトは、someapp.lib.versioning.proj

の型i.eクラスファイルを使用します。

標準ビルドバージョン管理SomeApp.lib.Versioning.projには正しいビルドバージョン(someapp.lib.versions.slnがルートレベルにあります)

です。

備考: これは、理想的な解決策ではなく、単なる仕事です。これにより、プロジェクト内のすべてのアセンブリがバージョンされません。たとえば、どのアセンブリがどのバージョンで構築されているかを知りたい場合は、これは機能しません。ソリューションのビルドバージョンを取得するのはホルダーを置くだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top