我有一个在.NET Framework 3.5 Service pack 1 中使用 C# 开发的 Windows 窗体应用程序。该应用程序可以基于开发数据库以及生产数据库进行发布。我正在使用 MSBuild 社区任务来发布我的应用程序。将应用程序发布到不同位置(即开发位置和生产位置)时,我没有遇到任何问题。
Issue:
-
将开发应用程序安装到我的计算机中后,我无法安装生产应用程序。它给了我一个错误:
您无法从此位置启动应用程序 TEST
因为它已经从不同的位置安装
-
问题:机器如何理解我正在尝试安装相同的应用程序?我假设它有某种应用程序 ID。如果是这种情况,我可以根据位置覆盖相关值。 (开发或产品)
在我的应用程序的项目文件中发布时的当前代码:
<Choose>
<When Condition=" '$(BuildEnvironment)' == 'DEV' ">
<PropertyGroup>
<PublishDir>\\A\B\development\</PublishDir>
<BaseConnection>Data Source=SQL-DEV.company.com; Database=TEST;Uid=XYZ;Pwd=ABC;</BaseConnection>
</PropertyGroup>
</When>
<When Condition=" '$(BuildEnvironment)' == 'PROD' ">
<PropertyGroup>
<PublishDir>\\A\B\production\</PublishDir>
<BaseConnection>Data Source=SQL-PROD.company.com;; Database=TEST;Uid=XYZ;Pwd=ABC;</BaseConnection>
</PropertyGroup>
</When>
</Choose>
应用程序的发布就像一个魅力,并指向相关数据库。我现在想要做的就是能够在同一台计算机上安装开发应用程序和生产应用程序,而不会出现任何错误。
问题:一键式应用程序与其他应用程序有何区别?
所以我终于弄清楚如何部署同一应用程序的不同版本。应用程序清单文件丢失部署元素的deploymentProvider 属性。
在应用程序清单中添加部署元素的部署提供程序属性后,我能够从各个位置安装我的应用程序。但这里的问题是它覆盖了以前安装的应用程序。对于这个问题,我遵循本教程将我的开发应用程序与生产应用程序区分开来。
现在一切都很好。 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)