只是重建和在Visual Studio 2008中执行Clean + Build之间有什么区别?是清洁 + 建立不同然后做清洁 + 重建?
我不知道我是否理解正确,Visual Studio中项目的"构建"和"重建"命令之间的区别在于构建仅编译已更改的代码,因为"rebuild"命令编译所有来自项目的代码无论是否已更改.
另外一个rebuild命令包括清理项目,因为build命令没有?
请建议我更好地理解这些差异.
谢谢 !
我有一个deploy.cmd
用于部署Azure网站的自定义文件.在构建和部署网站本身之前,它会执行一些自定义操作,例如安装Typesjs版本的Typescript和minifier,然后运行单元测试.
我遇到的问题是,运行此脚本似乎需要花费越来越长的时间,至少在Azure上运行.在我的开发笔记本电脑上,运行deploy.cmd
脚本大约需要90秒.但是当我在Azure上推出它时,运行时需要15-20分钟(有时甚至超过30-40分钟).我并不感到惊讶,它的花费更长的时间了Web服务器上-我感到有点惊讶,它的时间要长10倍以上.
这是最近部署的日志文件的精简版本:
Command: deploy.cmd
18:54:16.89 - Starting deploy script
18:54:19.92 - Installing typescript
18:54:30.90 - Installing minifier
18:54:44.62 - Restoring Nuget Packages
18:55:48.25 - Building solution
18:59:09.12 - Building test projects
19:04:03.67 - Running Payboard.Common.Tests.dll
19:04:19.80 - Running Payboard.Model.Tests.dll
19:04:25.25 - Running Payboard.Services.Tests.dll
19:06:29.72 - Running Payboard.Integrations.Tests.dll
19:06:49.46 - Running Payboard.Web.Tests.dll
19:07:56.99 - Beginning KuduSync
19:08:03.16 - Finished successfully.
Run Code Online (Sandbox Code Playgroud)
显然,这是大多数时间占用的两个构建步骤.我想我可以将它们合并到一个单独的构建步骤中 - 虽然我不完全确定它如何与KuduSync一起使用.
关于如何提高速度的任何其他建议?或者这基本上只是预期?
我正在使用一个powershell脚本,内部调用msbuild来构建我的解决方案.这原则上是有效的,因此解决方案文件是可以的.
我可以重复构建,它完美无缺.
但构建依然存在
所以我的怀疑是,msbuild正在使用一些在重新启动时未加载的组件/在工作期间卸载的组件.
但我不知道如何找到问题......
我使用此exe:C:\ Program Files(x86)\ MSBuild\14.0\bin\MsBuild.exe
有任何想法吗?
我的所有代码都在源代码管理下,所以我100%确定源代码没有改变.但是如果我构建一个C#DLL两次,它们的内容就会略有不同.我可以通过构建,然后再次构建,100%的时间重现问题.
这似乎根本不会对程序产生影响,但是用于从两个MSI文件创建补丁的MSIMSP等工具会因这些微小的更改而被抛弃.制作补丁(对于我的产品)比它们应该大40倍.
我已经反编译了这两个DLL及其汇编信息,类等等......完全相同.文件大小也完全相同,但当然有不同的创建时间.所以我真的无法理解发生了什么变化.
所以我挖了一点.
我已经使用WinDiff查找更改,然后在十六进制编辑器中交叉引用这些更改.WinDiff显示第二个"行"的变化,并在文件的大约80%的行中显示.
在十六进制编辑器中,我看到更改的第一个字节是字节0x088(字节136).这似乎是这条'线'上唯一改变的字节.我找不到第二个更改,因为WinDiff没有告诉我更改的确切字节偏移量.
是否有人熟悉(C#)DLL文件的组成知道更改的字节可能意味着什么?或者更好的是如何确保DLL文件在重建时保持完全相同?