C# 如何在Devenv中指定发布版本?
我是通过脚本构建VisualStudio项目的新手,如果您觉得我对该过程的理解不正确,请随时纠正我 我有一个visual studio解决方案,它由一个Wpf.exe项目和几个类库项目组成 目前,我正在使用下面的脚本成功地构建C# 如何在Devenv中指定发布版本?,c#,build,devenv,version-numbering,C#,Build,Devenv,Version Numbering,我是通过脚本构建VisualStudio项目的新手,如果您觉得我对该过程的理解不正确,请随时纠正我 我有一个visual studio解决方案,它由一个Wpf.exe项目和几个类库项目组成 目前,我正在使用下面的脚本成功地构建.sln文件 %VS\u IDE\u DIR%devenv.com”“…解决方案文件Path.sln”/rebuild Release/useev 当前,Wpf.exe文件获取文件版本和产品版本1.0.0,这是Wpf项目的Publish->Publish Version属性
.sln
文件
%VS\u IDE\u DIR%devenv.com”“…解决方案文件Path.sln”/rebuild Release/useev
当前,Wpf.exe
文件获取文件版本
和产品版本
1.0.0
,这是Wpf项目的Publish->Publish Version
属性中指定的默认值。
我想通过脚本以某种方式设置文件版本
和产品版本
。我怎样才能做到这一点
我有一个
环境变量
,它包含产品版本
和文件版本
,基本上我想将产品版本和文件版本的值设置为等于我的环境变量。在运行ms build命令时,可以添加/p:ApplicationVersion=1.0.0.1
。指定的版本号将是项目在编译exe时使用的版本号
更新:
我已将以下xml代码添加到解决方案的项目文件的项目标记中
<ItemGroup>
<Tokens Include="ApplicationVersion">
<ReplacementValue>$(ApplicationVersion)</ReplacementValue>
<Visible>false</Visible>
</Tokens>
</ItemGroup>
$(应用程序版本)
假的
有一种简单的方法可以做到这一点。在WPF项目中,打开“属性”节点并双击AssemblyInfo.cs。[assembly:AssemblyFileVersion]属性设置文件版本号。添加此选项以设置产品版本号:
[assembly: AssemblyInformationalVersion("1.2.3.4")]
从命令行执行此操作仅在技术上可行。您必须创建本机文件版本资源,并使用rc.exe进行编译。并使用Project+Properties、Resource file选项告诉编译器使用由rc.exe生成的自定义.res文件。您需要编写脚本来更新版本资源。考虑到编辑AssemblyInfo.cs很容易做到这一点,我建议您不要麻烦。当我运行
%VS_IDE_DIR%devenv.com”“…SolutionPath.sln”/rebuild Release/useev/p:ApplicationVersion=1.0.0.1
时,它会给我错误无效的命令行。未知开关:p:ApplicationVersion=1.0.0.1。
尝试%VS\u IDE\u DIR%devenv.com”“…SolutionPath.sln”/rebuild Release/useev/ApplicationVersion 1.0.0.1
。必须是语法错误。我已经测试了相同的参数。如果您指定了参数值,请运行p:/ApplicationVersion=1.0.0.1
。如果没有,只需添加/applicationversion1.0.0.1
,并尝试两者。无论您使用的是什么dll,因为当我添加\p:ApplicationVersion=1.0.0.1
时,编译的主项目文件是您的wpf应用程序,我得到的命令行无效。未知开关:p:ApplicationVersion=1.0.0.1
。只是提醒一下,my.sln由几个dll+一个wpf.exe项目组成。当我添加/Application=1.0.0.1
时,我只在wpf项目中添加了Xml
部分,我得到的命令行无效。未知开关:ApplicationVersion=1.0.0.1
知道如何通过命令行修改AssemblyInfo.cs
而不通过MS Build
devenv.com
我当前使用的与MSBuild不同,对吗?编写一个可以从命令行调用的小程序。记事本也很好用。