2010-08-24 85 views
3

我已經有了使用ClickOnce技術部署的小型wpf應用程序。問題在於,當我構建新版本客戶端時,會下載所有文件,但其中很多文件並未更改。我用下面的配置,使部署清單ClickOnce更新所有文件。爲什麼?

<GenerateDeploymentManifest AssemblyName="MyApp.exe.application" 
    AssemblyVersion="1.0.0.0" 
    DeploymentUrl="\\...\MyApp.exe.application" 
    Product="Egs.Client" 
    TargetCulture="ru-RU" 
    Description="My application" 
    Publisher="MyCompany" 
    Install="true" 
    UpdateInterval="1" 
    UpdateUnit="Weeks" 
    UpdateEnabled="true" 
    UpdateMode="Background" 
    OutputManifest="$(ApplicationFile)" 
    MapFileExtensions="true" 
    EntryPoint="@(DeploymentManifestEntryPoint)" /> 

即使我只是改變「1.0.0.0」改爲「1.0.0.1」的客戶端將再次下載整個應用程序。 我錯過了什麼,或者它是否是標準行爲?

回答

2

如果裝配在所有的變化,它會下載。重建組件會被視爲一種變化。我通常跳過Visual Studio創建部署,並使用Mage。然後我在所有的程序集,內置的bin不點法師,我點它在一個單獨的文件夾,我手動我想部署組件複製。合理?

+0

嗨,謝謝你的回答。我也不使用VisualStudio,我也使用Mage進行部署。我說得對,如果我使用命令狀 mage.exe -New .... 那麼所有的文件都將被重新下載和 mage.exe -Update 應改爲使用? – 2010-08-25 04:40:29

+0

- 新的或更新應該沒關係。要注意的主要問題是,如果您不想部署一個程序集,則需要使用完全相同的**程序集構建您的新部署,而不是該程序集的重建版本。 ClickOnce散列您的文件,這就是它知道如何下載;它將客戶端的文件哈希與服務器進行比較,可以下載任何不同的文件。對程序集執行**任何操作**,包括重建它,都將導致生成一個不同的哈希值,這會導致它被下載。 – codeConcussion 2010-08-25 06:03:48

相關問題