我正在为我的公司开发Winforms应用程序。我有两个发布位置,一个用于测试.exe的发布,一个用于发布版本。
不是每次交换时编辑发布文件夹位置和更新构建位置,是否可以设置Visual Studio以根据所选配置更改它们? (调试,发布等)
此外,在Visual Studio中执行某些操作时是否会触发事件?如果是这样,我如何捕获它们并导致其他代码运行? EG会在发布构建时自动发送电子邮件。
答案 0 :(得分:0)
我最近遇到了这个问题,并使用Visual Studio加载项(vspackage)提出了解决方案。
我的系统使用桌面WPF表单,因此Web Deploy选项不适用。
在vspackage中,我请求IVsUpdateSolutionEvents2事件的通知并处理OnActiveProjectCfgChange事件。这对于解决方案中的每个项目都是触发的(这不是理想的),但其他事件永远不会被触发。 我根据所选配置动态更改以下项目属性: 的AssemblyName 产品 PublishUrl
需要对AssemblyName和Product进行更改,以允许在同一桌面上进行并排ClickOnce部署。 (虽然测试和实时程序是从我们服务器上的不同文件夹部署的,但发现ClickOnce需要一个唯一的程序集名称,这一点非常震惊。)
n.b。我使用与配置相关的编译时定义来切换数据库连接字符串。这将删除在运行时使用config.exe文件时出现的安全漏洞。