MSBuildのバージョン管理アセンブリ情報ファイルのソリューションファイルの場所を指定する方法
-
26-12-2019 - |
質問
私は一日ずつこだわりでしたが、運がなかった。以前に作業するために使用される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>
.
解決
私は以下の回避策を実行しました。 すべてのソリューションをプロジェクトのルートレベルに移動するオプションはありません。
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がルートレベルにあります)
です。備考: これは、理想的な解決策ではなく、単なる仕事です。これにより、プロジェクト内のすべてのアセンブリがバージョンされません。たとえば、どのアセンブリがどのバージョンで構築されているかを知りたい場合は、これは機能しません。ソリューションのビルドバージョンを取得するのはホルダーを置くだけです。