dev*_*rts 19 msbuild teamcity visual-studio-2010
我正在调试我的构建过程中偶尔发生的错误,但我无法直接重现它.我正在使用msbuild和teamcity.
我有一个这样的依赖层次结构:
Some.Interop.dll
Dependency-> SharedDllABC.dll
SomeService.exe
Depenendcy-> Some.Interop
Run Code Online (Sandbox Code Playgroud)
通常,最终服务exectuable进入其发布目录:
Some.Interop
SharedDllABC.Dll
ServiceExectuable.exe
Run Code Online (Sandbox Code Playgroud)
但是我可以在我们的msbuild日志中看到,在构建完所有内容后,有时会在Incremental Clean期间删除三级依赖项,从而导致:
Some.Interop
ServiceExectuable.exe
Run Code Online (Sandbox Code Playgroud)
您可以在msbuild日志中看到它:
[src\SomeService\SomeService.csproj] _TimeStampAfterCompile
[12:32:43]: [src\SomeService\SomeService.csproj] Compile
// some other targets
[12:32:43]: [src\SomeService\SomeService.csproj] _CopyFilesMarkedCopyLocal
[12:32:43]: [_CopyFilesMarkedCopyLocal] Copy
[12:32:43]: [Copy] Copying file from "C:Projects\trunk\src\Some.Interop\bin\Release\Some.Interop.dll" to "bin\Release\Some.Interop.dll".
// some other targets
[src\Project\SomeService\SomeService.csproj] IncrementalClean
[18:54:42]: [IncrementalClean] Delete
[18:54:42]: [Delete] Deleting file "C:\Projects\trunk\src\Project\SomeService\bin\Release\SharedDllABC.dll".
[18:54:42]: [Delete] Deleting file "C:\Projects\trunk\src\Project\SomeServiceService\bin\Release\SharedDllABC.pdb".
[18:54:42]: [src\Project\SomeService\SomeService.csproj] CoreBuild
[18:54:42]: [src\Project\SomeService\SomeService.csproj] AfterBuild
[18:54:42]: [src\Project\SomeService\SomeService.csproj] Build
Run Code Online (Sandbox Code Playgroud)
这是我的直接msbuild输出,我刚刚更改了项目名称/ dll名称以匹配我的示例.当这个增量清洁已经发生时,SomeService.csproj已经建成了.你可以看到它没有被复制.但是在其他msbuild日志中,它会被正确复制,然后增量清理不会删除它.
我认为从这篇文章中增加清理应该是清理从以前版本创建的dll,但这并不能解释这个dll在大多数情况下是如何构建的.在视觉工作室,这总是有效.
我想我只是想知道究竟是Incremental clean什么,是什么导致它开始,也许在调试这样的情况时我应该寻找什么样的东西(汇编版本,时间戳等?)
请尝试以下操作:
添加:
<Target Name="IncrementalClean" />
Run Code Online (Sandbox Code Playgroud)
到所有项目中包含的 .targets 文件。
来自--> https://github.com/Microsoft/msbuild/issues/1054
| 归档时间: |
|
| 查看次数: |
3069 次 |
| 最近记录: |