2010-08-24 66 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

相关问题