0
我有一个桌面WPF应用程序,我需要随时进行更新。我有一个更新服务,可以提供更新的DLL和一个可以将更新应用到所述WPF应用程序的客户端。不过,我想使用MSBuild增量构建来创建一个只包含更新的DLL的修补程序。有没有办法建立一个完整的应用程序,并只输出包含更新到单独目录的DLL?我该如何增量构建我的应用程序
我有一个桌面WPF应用程序,我需要随时进行更新。我有一个更新服务,可以提供更新的DLL和一个可以将更新应用到所述WPF应用程序的客户端。不过,我想使用MSBuild增量构建来创建一个只包含更新的DLL的修补程序。有没有办法建立一个完整的应用程序,并只输出包含更新到单独目录的DLL?我该如何增量构建我的应用程序
好吧,所以我认为我破解了它。
解决方案是利用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>
你有没有考虑建在ClickOnce部署选项?这将允许您的客户在发布构建时自动获取更新。 – Brendan
您似乎错误地将增量构建从“增量构建”应用到“增量部署”。 – Nicodemeus
是的,但肯定要做增量部署,我需要找出增量构建? – jaywayco