假设我想创建一个静态文本文件,它随每个版本一起发布。我希望用发行版的版本号更新文件(如AssemblyInfo.cs中所指定),但我不想手动执行此操作
我希望可以使用生成后事件,并将版本号提供给如下批处理文件:
调用foo.bat$(汇编版本)
但是,我找不到任何合适的变量或宏来使用
有没有我错过的方法来实现这一点
如果(1)您不想下载或创建检索程序集版本的自定义可执行文件,(2)您不介意编辑Visual Studio项目文件,则有一个简单的解决方案,允许您使用如下所示的宏:
@(目标->’%(版本)
@(版本号)
要完成此任务,请卸载您的项目。如果项目某处定义了一个<;PostBuildEvent>;属性,将其从项目中剪切并临时保存到其他位置(记事本?)。然后在项目的最后,在结束标记之前,放置以下内容:
<;Target Name=“PostBuildMacros”>;
<;GetAssemblyIdentity AssemblyFiles=“$(TargetPath)”>;
<;输出TaskParameter=“Assemblies”ItemName=“Targets”/>;
</GetAssemblyIdentity>;
<;项目组>;
<;VersionNumber Include=“@(目标->;”%(版本)”/>;
</项目组>;
</目标>;
<;PropertyGroup>;
<;PostBuildEventDependsOn>;
$(PostBuildEventDependsOn);
构建后宏;
</PostBuildEventDependsOn>;
<;PostBuildEvent>;echo HELLO,程序集版本为:@(VersionNumber)</PostBuildEvent>;
</PropertyGroup>;
此代码段有一个示例<;PostBuildEvent>;已经在里面了。不用担心,您可以在重新加载项目后将其重置为真正的生成后事件
现在,正如承诺的那样,程序集版本可用于具有以下宏的生成后事件:
@(版本号)
完成了