相关疑难解决方法(0)

从AssemblyInfo后编译中读取AssemblyFileVersion

如何在编译后读取.csproj中的AssemblyFileVersion或其组件AssemblyFileMajorVersion,AssemblyFileMinorVersion,AssemblyFileBuildNumber,AssemblyFileRevision

我尝试了以下从构建的程序集中提取信息:

<Target Name="AfterCompile">
    <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
         <Output
             TaskParameter="Assemblies"
             ItemName="MyAssemblyIdentities"/>
    </GetAssemblyIdentity>
    <Message Text="AssemblyVersion = %(MyAssemblyIdentities.Version)" />
</Target>
Run Code Online (Sandbox Code Playgroud)

但是,它检索AssemblyVersion而不是AssemblyFileVersion.对于后者,似乎没有记录的元数据条目.我也尝试过:

<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>
Run Code Online (Sandbox Code Playgroud)

不幸的是,虽然这会检索正确的值,但它也会锁定程序集,直到VS2008关闭.

坦率地说,我不想要什么,因为我宁愿直接从AssemblyInfo.cs读取信息.但是,我无法弄清楚如何做到这一点.我假设MSBuild Extensions中的AssemblyInfo是一种方式,但它似乎专注于写入AssemblyInfo而不是从中检索值.

我怎样才能最好地完成这个?

.net versioning msbuild assemblies

12
推荐指数
1
解决办法
8154
查看次数

从MSBUILD脚本获取次要版本和主要版本

我正在使用Msbuild来编译和生成.zip文件和安装程序,我需要我的assembyInfo的版本号.

我正在使用此代码.

<Target Name="getversion">
    <GetAssemblyIdentity AssemblyFiles="$(BuildDir)\myprogram.exe">
        <Output TaskParameter="Assemblies" ItemName="fooAssemblyInfo"/>
    </GetAssemblyIdentity>
    <Message Text="Version = %(fooAssemblyInfo.Version)"/>
</Target>
Run Code Online (Sandbox Code Playgroud)

但这会返回Version = 2.0.0.29110,我只需要次要和主要版本.

有没有办法在没有自定义任务的情况下读取assembyInfo.cs信息?

.net msbuild assemblyinfo

7
推荐指数
3
解决办法
7175
查看次数

标签 统计

.net ×2

msbuild ×2

assemblies ×1

assemblyinfo ×1

versioning ×1