自动化 clickonce 构建
我有一个包含数据库连接字符串的单击一次应用程序。
我的用户有 8 个不同的数据库,他们使用这个程序连接到这些数据库。用户可能需要同时打开该程序的多个版本,同时连接到不同的数据库,我希望他们同时安装同一程序的多个“版本”。他们连接到的每个数据库都有一个。
版本之间的唯一区别(目前)是连接字符串(存储在易于操作的 .config 文件中)和程序名称(以及开始菜单中快捷方式的名称)。
有没有一种方法可以自动创建 clickonce 安装,使我能够创建一个构建脚本来更改 .config 文件和程序名称以一次执行多个版本?
I have a click-once application containing a database connection string.
My users have 8 different databases that they connect to using this program. The users might need to have several versions of the program open at once connected to different databases at once and I would like for them to have multiple “versions” of the same program installed at once. One for each database they connect to.
The only difference (for now) between the versions would be the connection string (stored in a .config file that would be easy to manipulate) and the name of the program (and thus the name of the shortcut in the start menu).
Is there a way of automating the creation of a clickonce install that would enable me to create a build-script that changes the .config file and the program name to do multiple versions at once?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于您的情况,我认为最简单的方法是克隆您的 .vsproj 和 .config 文件 n 次。
在每个克隆的 .vsproj 中,您应该在每个 .config 中指定所需的程序名称 - 所需的连接字符串。
然后您应该使用 msbuild 实用程序从命令行构建所需的 ClickOnce 应用程序。
PS 为什么您不想修改应用程序代码以使用功能嵌入多个数据库并在它们之间切换?
In your case I think the simplest way is to clone your .vsproj and .config files n'th times.
In each cloned
.vsproj
you should specify desired program name, in each.config
- desired connection string.Then you should use msbuild utility to build desired ClickOnce Applications from command line.
P.S. Why you don't want to modify your app code to embed multiple Database using functionality and switching between them?
您当然可以自动发布 ClickOnce 应用程序并设置 ProductName (快捷方式)和 AssemblyName (我认为每个版本都需要不同)
然后如何从配置文件中选择要使用的连接字符串(假设您只有一个文件)是一个问题在运行时解决。
You can certainly automate publishing ClickOnce applications and set the ProductName (for the shortcut) and the AssemblyName (which I think needs to be different for each version)
How you then choose which connection string to use from the config file (assuming you have only one file) is a problem to be solved at runtime.