Làm thế nào người ta có thể đọc AssemblyFileVersion, hoặc các thành phần của nó AssemblyFileMajorVersion, AssemblyFileMinorVersion, AssemblyFileBuildNumber, AssemblyFileRevision, trong csproj, sau biên dịch?đọc AssemblyFileVersion từ AssemblyInfo sau biên dịch
Tôi đã thử những điều sau đây mà kéo thông tin từ lắp ráp xây dựng:
<Target Name="AfterCompile">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output
TaskParameter="Assemblies"
ItemName="MyAssemblyIdentities"/>
</GetAssemblyIdentity>
<Message Text="AssemblyVersion = %(MyAssemblyIdentities.Version)" />
</Target>
Nhưng đó lấy AssemblyVersion và không phải là AssemblyFileVersion. Có vẻ như không phải là mục nhập siêu dữ liệu được ghi lại cho mục sau. Tôi cũng đã thử:
<Import Project="$(MSBuildExtensionsPath)\ExtensionPack\MSBuild.ExtensionPack.tasks" />
<Target Name="AfterCompile">
<MSBuild.ExtensionPack.Framework.Assembly TaskAction="GetInfo" NetAssembly="$(TargetPath)">
<Output TaskParameter="OutputItems" ItemName="Info" />
</MSBuild.ExtensionPack.Framework.Assembly>
<Message Text="AssemblyFileVersion = %(Info.FileVersion)" />
</Target>
Thật không may, trong khi điều này lấy giá trị chính xác, nó cũng khóa lắp ráp cho đến khi VS2008 bị đóng.
Thẳng thắn, không phải là những gì tôi muốn vì tôi thà đọc thông tin từ AssemblyInfo.cs trực tiếp. Tuy nhiên, tôi không thể tìm ra cách để làm điều đó. Tôi giả định AssemblyInfo trong MSBuild mở rộng là một cách, nhưng có vẻ như tập trung vào văn bản cho AssemblyInfo và không lấy các giá trị từ nó.
Làm cách nào để tôi có thể thực hiện điều này tốt nhất?
+1 chỉ đơn giản là hỏi "Làm cách nào để đọc" thay vì những gì bạn luôn tìm thấy: Cách cập nhật thông tin phiên bản. – Yoopergeek
Vì đã hai tháng kể từ khi tôi hỏi câu hỏi này và câu trả lời có thể sử dụng duy nhất là của riêng tôi, tôi sẽ tiếp tục và chấp nhận nó. Tôi vẫn nghĩ rằng có thể có một cách tốt hơn. – Gregyski
@Yoopergeek: Thật vậy, có một số phương pháp để viết, nhưng đọc được khó nắm bắt ngay cả sau khi rất nhiều nghiên cứu. Câu trả lời của tôi dưới đây, tuy nhiên, làm việc tốt. – Gregyski