如何更改安装项目版本(在TFS 2015 [vNext build]中)

时间:2017-02-05 09:51:59

标签: visual-studio-2015 msbuild tfs2015 vnext

用于在TFS 2015中构建我的项目设置文件\ msi我使用

devenv命令行任务:

solutionPath /build BuildConfiguration /project projectPath

我的问题是如何从这一行更改msi版本(如果可能的话),如... $(BuildVersion)

检查MSDN devenv命令行(没有。)

感谢

1 个答案:

答案 0 :(得分:1)

假设您希望在构建期间更改ProductVersion文件中的.vdproj值。你是正确的,没有命令可以直接更改它。

您需要使用powershell或以编程方式更改版本。以下是this case中的代码段,您可以参考:

static void Main(string[] args) 
{
    string setupFileName = @"<Replace the path to vdproj file>"; 
    StreamReader reader = File.OpenText(setupFileName); 
    string file = string.Empty; 

    try 
    { 
        Regex expression = new Regex(@"(?:\""ProductCode\"" = 
        \""8.){([\d\w-]+)}"); 
        Regex expression1 = new Regex(@"(?:\""UpgradeCode\"" = 
        \""8.){([\d\w-]+)}"); 
        file = reader.ReadToEnd(); 

        file = expression.Replace(file, "\"ProductCode\" = \"8:{" + 
        Guid.NewGuid().ToString().ToUpper() + "}"); 
        file = expression1.Replace(file, "\"UpgradeCode\" = \"8:{" 
        + Guid.NewGuid().ToString().ToUpper() + "}"); 
    } 
    finally 
    { 
        // Close the file otherwise the compile may not work 
        reader.Close(); 
    } 

    TextWriter tw = new StreamWriter(setupFileName); 
    try 
    { 
        tw.Write(file); 
    } 
    finally 
    { 
        // close the stream 
        tw.Close(); 
    } 
 }

或者您可以参考powershell脚本替换this case中AssemblyInfo.cs中的AssemblyVersion以更改ProductVersion文件中的.vdproj值。