问题描述
我们有一个楠脚本,从的,然后运行的MSBuild 发布应用程序。问题是,我们必须记住要始终递增版本的Visual Studio。
我们可以选择自动增量此上发布,但是这被抹在接下来的结帐,我宁可不要让构建脚本来检查的项目文件。
有没有一种简单的方法来做到这一点?
在我到底该用恶性xmlpoke,所以我们最终20.0.dayofyear.hourminute版本 - 它主要是独一无二的横跨建立。 P>
有没有必要自定义任务 - 和的MSBuild的较新版本的一个pokexml了,所以它可能工作与
<目标名称=pokerevision取决于=初始化>
<属性名=项目名称值=MyProject.GUI/>
<! - 这是一个有点瑕疵的,因为231可能意味着02:31或23:01,但我们从来没有建立三时左右。 - >
<物业
NAME =app.revision
值=$ {日期时间::拿到小时(日期时间:: NOW())} $ {日期时间::拿到分钟(日期时间:: NOW())}/>
<回声消息=修订版:$ {app.revision}/>
< xmlpoke
文件=$ {Solution.Path} \ $ {项目名称} \ $ {项目名称}的.csproj
XPath的=// X:项目/ X:的PropertyGroup [1] / X:ApplicationRevision
值=$ {app.revision}
>
<命名空间>
<命名空间preFIX =X的uri =http://schemas.microsoft.com/developer/msbuild/2003/>
< /命名空间>
< / xmlpoke>
<物业
NAME =app.version
值=20.0 $ {日期时间::获得天-的年(日期时间:: NOW())} $ {app.revision}。/>
<回声消息=版本:$ {app.version}/>
< xmlpoke
文件=$ {Solution.Path} \ $ {项目名称} \ $ {项目名称}的.csproj
XPath的=// X:项目/ X:的PropertyGroup [1] / X:ApplicationVersion
值=$ {app.version}
>
<命名空间>
<命名空间preFIX =X的uri =http://schemas.microsoft.com/developer/msbuild/2003/>
< /命名空间>
< / xmlpoke>
< /目标和GT;
We have an NAnt script that checks out from CVS and then runs MSBuild to publish the application. The problem is we have to remember to always increment the version in Visual Studio.
We have the option to auto increment this on publish, but this gets wiped on the next checkout and I would rather not have to get the build script to check in the project file.
Is there a simple way to do this?
In the end I did this using NAnt xmlpoke, so for the version we end up with 20.0.dayofyear.hourminute - it is mostly unique across builds.
There is no need for custom tasks - and the newer version of MSBuild has a pokexml too, so it might work with that.
<target name="pokerevision" depends="init">
<property name="projectname" value="MyProject.GUI" />
<!-- This is a bit flawed because 231 could mean 02:31 or 23:01, but we never build before 3 am. -->
<property
name="app.revision"
value="${datetime::get-hour(datetime::now())}${datetime::get-minute(datetime::now())}" />
<echo message="revision: ${app.revision}" />
<xmlpoke
file="${Solution.Path}\${projectname}\${projectname}.csproj"
xpath="//x:Project/x:PropertyGroup[1]/x:ApplicationRevision"
value="${app.revision}"
>
<namespaces>
<namespace prefix="x" uri="http://schemas.microsoft.com/developer/msbuild/2003" />
</namespaces>
</xmlpoke>
<property
name="app.version"
value="20.0.${datetime::get-day-of-year(datetime::now())}.${app.revision}" />
<echo message="version: ${app.version}" />
<xmlpoke
file="${Solution.Path}\${projectname}\${projectname}.csproj"
xpath="//x:Project/x:PropertyGroup[1]/x:ApplicationVersion"
value="${app.version}"
>
<namespaces>
<namespace prefix="x" uri="http://schemas.microsoft.com/developer/msbuild/2003" />
</namespaces>
</xmlpoke>
</target>
这篇关于我怎样才能得到的MSBuild递增的ClickOnce发布生成服务器上的修订版本号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!