1

我有与部分构建有关的问题。场景如下。

我有包含 Windows 窗体应用程序项目及其支持类库项目的解决方案。我正在使用 MSBuild 构建解决方案。在构建之前,我使用 msbuild 自定义任务更改每个项目的程序集文件版本。这会导致 AssemblyInfo 文件被修改。由于 assemblyinfo 文件已修改,因此 msbuild 会构建每个项目,即使除了 assemblyInfo 文件中的更改之外没有真正的代码更改。因此,每次我构建解决方案时,它都会构建所有项目,在理想情况下,它应该只构建那些发生真正代码更改的项目。由于这个解决方案的构建时间保持不变,即使单个项目发生了变化。这还有另一个副作用。我正在使用 clickonce 发布此应用程序。因此,每次构建解决方案时,它都会构建解决方案中的每个项目。这会导致每次我进行新构建时都会为清单文件中的每个程序集/exe 生成新的哈希签名。因此,当发布应用程序更新时,clickonce 会强制用户下载应用程序中的每个 dll/exe。而理想情况下,应该只在用户系统上下载更新的(可能是一个或两个)文件。

基本上我想要的是。1. 只编译那些修改过的项目。2. 只为修改过的项目更新汇编文件版本。

这样,我将能够减少构建时间并解决 clickonce 问题。有什么解决方案/解决方法吗?

4

0 回答 0