MSBuild:永久更改项目的PropertyGroup属性

| 我希望找到一种在构建过程中将csproj文件中的值设置为值的方法。 MSBuild中是否有一项任务可用于将属性永久设置为值?在下面的示例中,我可以永久设置CustomValue = Yes吗?
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">
  <PropertyGroup>
    .....
    <CustomValue>XXXX</CustomValue
    <FileAlignment>512</FileAlignment>
    <ProjectTypeGuids></ProjectTypeGuids>
    <SccProjectName>SAK</SccProjectName>
    <SccLocalPath>SAK</SccLocalPath>
    <SccAuxPath>SAK</SccAuxPath>
    <SccProvider>SAK</SccProvider>
  </PropertyGroup>
    
已邀请:
        您可以使用XmlPoke任务执行此操作。但是,以这种方式更改项目似乎有些奇怪。另外,您可以设置一个很小的导入文件,
<!-- in your main project file, right below the PropertyGroup -->
<Import
  Condition=\"Exists(\'Custom.props\')\"
  Project=\"Custom.props\"
  />
然后动态创建该属性文件,如下所示:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<Project
  xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\"
  ToolsVersion=\"4.0\">
  <PropertyGroup>
    <CustomValue>True</CustomValue>
  </PropertyGroup>
</Project>
您可以仅在此.props文件上使用XmlPoke,也可以使用WriteLinesToFile创建整个文件。不需要将此辅助文件检入源代码管理,如果文件不存在,则导入中的条件可使项目正常运行。 XmlPoke任务看起来像这样,
  <XmlPoke
     XmlInputPath=\"./Custom.props\"
     Namespaces=\"&lt;Namespace Prefix=\'x\'
        Uri=\'http://schemas.microsoft.com/developer/msbuild/2003\'/&gt;\"
     Query=\"//x:PropertyGroup/x:CustomValue/@Value\"
     Value=\"True\"
     />
    

要回复问题请先登录注册