簡體   English   中英

在 VS 構建后事件中獲取程序集版本

[英]Get assembly version in VS post-build events

我創建了一個簡單的 C# WPF 程序,它通過單擊按鈕運行不同程序的各種設置,因此當我必須配置 PC 時它會自動執行一些任務。

同時我正在開發一個啟動器,它會搜索上述程序的更新。

因此,當我在發布模式下構建主應用程序時,在構建事件之后的 out 目錄上,我使用程序的當前版本創建了一個文本文件,但它總是返回1.0.0.0 這是我當前的構建后事件cmd.exe /c echo $(Version) >> "$(OutDir)\version.txt"

我試圖取消注釋 AssemblyInfo.cs 中的 [assembly: AssemblyFileVersion [assembly: AssemblyFileVersion("1.0.0.6")]部分,並使用自動版本自動增加它,但什么也沒有。 經過多次研究,我沒有發現任何東西。

在 AssemblyInfo 下方:

using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;


[assembly: AssemblyTitle("Program name")]
[assembly: AssemblyDescription("Program info")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Company")]
[assembly: AssemblyProduct("Product name")]
[assembly: AssemblyCopyright("Copyright ©  2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

[assembly: ComVisible(false)]

//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]      
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]           
//[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.208")]
[assembly: AssemblyFileVersion("1.0.0.6")]

應用程序配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
</configuration>

我在事件中使用的變量可能是錯誤的,或者我需要對代碼進行一些更改?

任何想法?

編輯

目標是在我運行啟動器時將版本放入文本文件,如果版本高於安裝的版本,則進行更新

我認為不可能以這種方式進行,但是您可以使用GetAssemblyIdentity msbuild 任務來獲取程序集版本,然后使用

<Target Name="WriteVersion" AfterTargets="Build">
   <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
      <Output TaskParameter="Assemblies" ItemName="AssemblyVersion" />
   </GetAssemblyIdentity>
   <WriteLinesToFile File="$(OutputPath)\version.txt" Overwrite="true" Lines="%(AssemblyVersion.Version)" />
</Target>

您可以將它放在單獨的目標中並在Build目標之后運行。 要將版本寫入文件,您可以使用WriteLinesToFile任務

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM