2011-03-15 111 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有同樣的錯誤。我不得不卸載舊版本並重新運行一次安裝程序,然後它工作正常。

我以爲我會在這裏發佈。

相關問題