我如何逐步构建我的应用程序

时间:2014-04-01 19:02:42

标签: c# visual-studio-2010 deployment msbuild updates

我有一个桌面WPF应用程序,我需要不时更新。我有一个可以提供更新的DLL的更新服务和一个可以将更新应用于所述WPF应用程序的客户端。但是,我想利用MSBuilds增量构建来创建仅包含更新的DLL的修补程序。有没有办法构建整个应用程序并仅输出包含单独目录更新的DLL?

1 个答案:

答案 0 :(得分:0)

好的,我认为我破解了它。

解决方案是使用MSBuild incremental builds来检查正在编译的文件是否有变化。如果设置了指示此类的属性并再次使用MSBuild将生成的dll复制到增量文件夹。

所以我的项目文件都在底部:

...    
    <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
           Other similar extension points exist, see Microsoft.Common.targets.-->    
    <Target Name="BeforeBuild" Inputs="@(Compile)" Outputs="$(OutputPath)$(AssemblyName).dll">
      <CreateProperty Value="true">
        <Output TaskParameter="Value" PropertyName="NewFile" />
      </CreateProperty>
    </Target>
    <Target Name="AfterBuild" Condition=" '$(NewFile)' == 'true' ">
      <MakeDir Directories="$(IncrementalBuildRoot)$(BuildNumber)" Condition="!Exists('$(IncrementalBuildRoot)$(BuildNumber)')" />
      <Copy SourceFiles="$(OutputPath)$(AssemblyName).dll" DestinationFolder="$(IncrementalBuildRoot)$(BuildNumber)" />
    </Target>
 </Project>