私は、DLL として出力される特定のプロジェクトのアセンブリ バージョン情報を書くことにかなり慣れています。
ただし、私が今探しているのは、\Bin フォルダー内の各 DLL を調べて、アセンブリ情報を取得し、versions.txt ファイルに書き込むことです。
誰かが同様の目標を達成できましたか?
私は、DLL として出力される特定のプロジェクトのアセンブリ バージョン情報を書くことにかなり慣れています。
ただし、私が今探しているのは、\Bin フォルダー内の各 DLL を調べて、アセンブリ情報を取得し、versions.txt ファイルに書き込むことです。
誰かが同様の目標を達成できましたか?
WriteVersionToFile以下で定義されている MSBuild ターゲットを使用して、それを行うことができます。
<PropertyGroup>
<VersionsFile>versions.txt</VersionsFile>
</PropertyGroup>
<ItemGroup>
<!-- Assemblies for which you want versions-->
<AssemblyFiles Include="Bin\**\*.dll"/>
</ItemGroup>
<Target Name="ExtractVersions">
<GetAssemblyIdentity AssemblyFiles="@(AssemblyFiles)">
<Output TaskParameter="Assemblies" ItemName="MyAssemblyIdentities"/>
</GetAssemblyIdentity>
<Message Text="%(MyAssemblyIdentities.Name) - Version %(Version)"/>
</Target>
<Target Name="WriteVersionToFile" DependsOnTargets="ExtractVersions">
<Delete Files="$(VersionsFile)" />
<WriteLinesToFile File="$(VersionsFile)"
Lines="%(MyAssemblyIdentities.Name) - %(Version)"
Overwrite="false"
Encoding="Unicode"/>
</Target>
出力ファイルversions.txtは次のようになります。
ICSharpCode.SharpZipLib - 0.85.4.369
nunit.framework - 2.4.7.0
Test.Rules - 0.2.0.0