gpt4 book ai didi

c# - 如何同时部署两个 ClickOnce 版本?

转载 作者:IT王子 更新时间:2023-10-29 04:04:56 25 4
gpt4 key购买 nike

我希望能够为我的应用程序提供一个测试 ClickOnce 服务器,用户可以在其中并行运行生产版本和测试版本。这可能吗?

我首先尝试在 AssemblyInfo.cs 中使用以下内容,并在 ClickOnce 部署中更改名称,尽管所有这些实现都是用测试版本覆盖用户的生产版本。同样,当他们回到生产服务器时,它也做了同样的事情。

#if DEBUG
[assembly: AssemblyTitle("Product Name - Test")]
#else
[assembly: AssemblyTitle("Product Name")]
#endif

我想我还应该澄清一下,这两个部署位置彼此不同,并且在不同的服务器上。

更新

我也曾尝试根据 Debug模式为 list 设置 GUID,但它同样不起作用(下面使用了虚拟 GUID)。

#if DEBUG
[assembly: Guid("AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA")]
#else
[assembly: Guid("BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB")]
#endif

两者如何区分?似乎安装程序将它们视为两个独立的程序,因为我得到了每个程序的安装确认。虽然,当我安装第二个时,“添加/删除程序”只看到后者,虽然前者仍在磁盘上,因为当我稍后重新安装它时,它只是简单地运行,但随后添加/删除程序切换回到以前的名字。

最佳答案

这听起来可能有点蹩脚,但最简单的方法是在您的解决方案中有两个 EXE 项目。其中每一个的 Main 方法将只调用原始 EXE 项目(您刚刚切换为 DLL 文件)中的 Main 方法。

这意味着每个 EXE 项目都可以有自己的 ClickOnce 发布设置,以及自己的 app.config 文件。这意味着您的生产版本和测试版本有不同的连接字符串。

您的另一种选择(似乎最有意义的一种)是使用 MageUI.exe手动构建 ClickOnce 文件,这样您就可以在每次运行该工具时选择不同的配置文件和发布位置。还有一个命令行版本 (Mage.exe),因此理论上您可以自动执行此操作。

但是,我们发现使用两个“runner”项目的解决方案要简单得多。我建议您先尝试一下。

关于c# - 如何同时部署两个 ClickOnce 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1754318/

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