MSBUILD 指南(更新中)

基础操作

  • 修改已有属性的值, 如例在DefineConstants值后追加
     Value="$(DefineConstants);PatchCreationId=$(PatchCreationId)">
 PropertyName="DefineConstants" TaskParameter="Value"/>
>
  • 执行外部程序
     Command="echo $(LastProductVersion)" Timeout="10000" IgnoreExitCode="true"/>
  • 打印消息到编译控制台
     Text="LastChangedRevision: $(LastChangedRevision)"/>

操作文件和目录

  • 创建目录
 Directories="$(HistoryPath)\$(ProductVersion)"/>
  • 删除文件
 Directories="patch" />
  • 删除目录
 Files="@(LatestFiles)" />
  • 拷贝文件
 SourceFiles="$(OutputPath)\$(OutputName).msi" DestinationFiles="$(LatestPath)\$(OutputName)$(ProductVersion).msi"/>
  • 读取文本文件
  File="pv">
 TaskParameter="Lines" PropertyName="LastProductVersion"/>
>
  • 写文本文件
 File="$(ChangesLog)" Lines="$(ProductVersion)" Overwrite="false" />

操作XML

  • 操作XML, 需要引用UtilExtension
 xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">

修改XML中内容


 Id="schedule.plugin.config" Name="plugin.config" Source="..\output\plugins\schedule\plugin.config" />
 Id="schedule.ConfigDBConnectionString" Action="setValue"
ElementPath="/configuration/appSettings/add[\[]@key='DBConnectionString'[\]]/@value"
File="[schedule]\plugin.config"
Value="server=[IP_DB];initial catalog=gtalarm;user id=[DB_USER];password=[DB_PASSWORD];"/>

编译时生成新的GUID

  • 首先,引用MSBuild.MyTask.NewGuid
 AssemblyFile="$(LibsPath)\MSBuild\MyTask\MSBuild.MyTask.dll" TaskName="MSBuild.MyTask.NewGuid" />
  • 如例,调用生成GUID,放入ProductCode变量
> TaskParameter="Guid" PropertyName="ProductCode" />>

编译时获取硬盘信息

  • 首先,引用MSBuild.MyTask.HardwareInformation
 AssemblyFile="..\src\bin\Release\MSBuild.MyTask.dll" TaskName="MSBuild.MyTask.HardwareInformation" />
  • 如例,调用HardwareInformation得到硬盘信息放入DiskVolumeSerialNumber变量
 DiskPath="c:\windows" DiskPropertyName="VolumeSerialNumber">
 TaskParameter="DiskPropertyValue" PropertyName="DiskVolumeSerialNumber" />
>

参考和引用

  • 任务指南 http://msdn2.microsoft.com/en-us/library/7z253716.aspx
  • 预留的属性列表 http://msdn2.microsoft.com/en-us/library/ms164309.aspx
  • 已知的项目列表(MSBuild Well-known Item Metadata) http://msdn2.microsoft.com/en-us/library/ms164313.aspx
  • MyTask
  • Microsoft Community Tasks http://msbuildtasks.tigris.org/
  • Microsoft SDC Tasks http://www.codeplex.com/sdctasks

转载于:https://www.cnblogs.com/itrust/archive/2008/05/30/1210754.html

你可能感兴趣的:(MSBUILD 指南(更新中))