2011-03-15 81 views
5

ClickOnce应用程序我有一个Windows窗体应用程序中使用开发的.NET Framework 3.5的,Service Pack 1的C#应用​​程序可以根据开发数据库和生产数据库上公布。我正在使用MSBuild社区任务来发布我的应用程序。在将应用程序发布到不同位置(即开发位置和生产位置)时,我不会遇到任何问题。安装从两个不同的位置

问题:

  1. 安装开发应用到我的机器后,我无法安装生产应用程序。它给了我一个错误说:

    ,因为它已经从一个不同的位置安装,您可以在此位置 启动应用测试

  2. 问:如何机器明白,我想安装相同的应用程序?我认为它有某种应用程序ID。如果是这种情况,我可以根据位置覆盖相关值。 (DEV或PROD)

    当前的代码,而在我的应用程序的项目文件发布:

    <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> 
    

    应用程序的发布就像一个魅力和指向有关数据库。我现在要做的就是能够在同一台机器上安装开发应用程序和生产应用程序,而不会出现任何错误。

  3. 问题:一个应用程序与另一个应用程序的区别是什么?

回答

4

所以我终于想出了如何部署同一个应用程序的不同版本。应用程序清单文件缺失deploymentProvider attribute of the deployment element.

添加应用程序清单部署元素的部署提供属性之后,我能够从不同的位置安装我的应用程序。但问题在于它覆盖了以前安装的应用程序。对于这个问题,我跟着this tutorial来区分我的开发应用程序和生产应用程序。

现在一切正常。 :)

+0

在编辑清单之后,需要使用Mage.exe进行签名。 – EvAlex 2012-03-25 10:43:23

0

我想尝试的第一件事是去你的Windows窗体项目的项目属性。在发布上的选项按钮选项卡中点击改变“产品名称”,以YourProductName _Test或类似的东西,看看是否可以让你同时安装两个版本的一面。

我从来没有尝试过这种方式,但我认为ClickOnce应用程序是由“发布者名称”和“产品名称”值组合的唯一标识,如果是这种情况,这可能会解决您的问题......给它一个镜头。 ..

+0

这是我试图在发布它们时区分我的开发和产品应用程序的第一件事情之一。但是,这是行不通的。 – reggie 2011-03-16 12:01:12

+0

所以底线是组件名称**和**产品名称必须更改... – 2011-03-16 17:07:06

+0

是的。我不得不改变程序集名称以及产品名称来区分版本。我遇到的主要问题是安装程序根本不允许安装第二个版本。介绍部署提供商帮助我安装它。 – reggie 2011-03-16 18:09:38

1

我有一个称为是专为这种类型的使用ClickOnceMore(www.clickoncemore.net)产品。它的主要用途是自动化构建的ClickOnce部分。

它完全支持宏扩展,允许您定义DEV和PROD版本。当你建立你可以定义你正在建设的环境,然后应用程序名称将反映。如果有机会,请检查一下。

0

我知道这是一个旧的线程,但我尝试更新和旧版本的程序时,与WPF有同样的错误。我不得不卸载旧版本并重新运行一次安装程序,然后它工作正常。

我以为我会在这里发布。

相关问题