gpt4 book ai didi

c# - 来自另一个使用 WiX 的项目的引用版本字符串

转载 作者:太空宇宙 更新时间:2023-11-03 19:16:43 27 4
gpt4 key购买 nike

现在,在我们的一个 WiX 安装程序中,我们明确定义了产品版本字符串,如下所示:

<?define ProductVersion="1.2.3"?>

我们还在另一个表单的标题中使用相同的版本号,下面是一个非常简单的应用示例:

public partial class frmMain : Form
{
// assume the designer code is all properly generated

private const string VERSION = "1.2.3";

public frmMain()
{
InitializeComponent();
this.Text += string.Format(" v{0}", VERSION);
}
}

这看起来很笨拙,我觉得应该没有必要在两个地方更新我们的产品版本。存储版本字符串信息的最佳位置在哪里,以便我只需要在一个地方更新它,并且只需从表单和安装程序中引用此数据?

请注意,在这种情况下,产品版本与程序集版本不匹配。

最佳答案

C# 没有像 C/C++ 和 WiX 工具集那样的预处理器,因此您不能做显而易见的事情并通过该途径传递版本。如果产品版本与程序集文件 版本匹配,那么您可以:

<Product Version='!(bind.fileVersion.FileIdOfAssembly)'>

如果文件版本可以匹配,那将是理想的。如果没有,那么剩下的唯一选择就是在安装时写一些东西并在运行时读取它。例如:

<RegistryValue Root='HKLM'
Path='SOFTWARE\!(bind.property.Manufacturer)\!(bind.property.ProductName)'
Name='Version' Value='!(bind.property.ProductVersion)' Type='string' />

然后在您的 frmMain() 中读取该注册表项。不确定应用程序的额外复杂性是否值得,因为您现在拥有简单、强大的解决方案。

关于c# - 来自另一个使用 WiX 的项目的引用版本字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15974343/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com