2009-09-03 101 views
3

有没有可视化的方法  Studio   2008从命令行执行“Publish Now”按钮?从命令行发布ClickOnce

我见过的帖子建议使用msbuild/target:发布来调用它。这没什么,但是MSBuild不增加版本号。我希望这样的事情:

devenv mysolution.sln /publish 

回答

3

为了增加内部版本号,我使用我的MSBuild Extension pack .csproj的文件中,如下所示:

<Target Name="BeforeBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release-VersionIncrement|AnyCPU' "> 
    <CallTarget Targets="CleanAppBinFolder" /> 
    <MSBuild.ExtensionPack.VisualStudio.TfsSource TaskAction="Checkout" ItemCol="@(AssemblyInfoFiles)" WorkingDirectory="C:\inetpub\wwwroot\MySolution" ContinueOnError="true" /> 
    <!-- Microsoft's task that goes over assembly files and increments revision number. --> 
    <MSBuild.ExtensionPack.Framework.AssemblyInfo Condition="'$(Optimize)'=='True' " AssemblyInfoFiles="@(AssemblyInfoFiles)" AssemblyRevisionType="AutoIncrement" AssemblyFileRevisionType="AutoIncrement"> 
    <Output TaskParameter="MaxAssemblyVersion" PropertyName="MaxAssemblyVersion" /> 
    </MSBuild.ExtensionPack.Framework.AssemblyInfo> 
    <Message Text="----current version---: '$(MaxAssemblyVersion)'" /> 
</Target> 

这样,无论何时在配置设置为释放 - VersionIncrement,版本号被改变。当做到这一点,我可以使用下面的MSBuild命令发布:

的MSBuild C:\项目\ MyProject.csproj /吨:ResolveReferences; _CopyWebApplication /P:配置=释放; BuildingProject = TRUE; WebProjectOutputDir = C:\的Inetpub \ wwwroot的\ OutputProject \ MyProjectOutput; OUTDIR = C:\的Inetpub \ wwwroot的\ OutputProject \ MyProjectOutput

注意,这是为ASP.NET 3.5 Web应用程序。