I have a C # project in VS 2008, which is rebuilt every time I create a solution, even if nothing in this project and none of its dependencies have been changed. This causes a huge problem, because the solution is quite large (more than 100 projects), and this one project is very low in the dependency chain, so now it causes most of the other projects that are also restored when no rebuilds were needed. (I am making a "Build Solution", not a "Rebuild Solution".)
I know that this project is the culprit, since I turned "verbosity of the assembly of the MSBuild project" into "Diagnostic". Then I build the solution twice, without changing anything between assemblies. In the second build, this is the first project in a solution that is being rebuilt, which is determined by the fact that Csc.exe is running.
Here is what I see in the output of the assembly:
------ Build started: Project: COS.BusinessEntities, Configuration: Debug Any CPU ------
...
Target "CoreCompile" in file "c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.CSharp.targets":
Building target "CoreCompile" completely.
Output file "bin\Debug\COS.BusinessEntities.XML" does not exist.
Task "Csc"
Command:
c:\WINDOWS\Microsoft.NET\Framework\v3.5\Csc.exe /noconfig /nowarn:1591,1573,0219,0168,1572,1587,1570,1701,1702 /errorreport:prompt /warn:4 /doc:bin\Debug\COS.BusinessEntities.XML /define:DEBUG;TRACE ...
So, it seems that when it gets into the COS.BusinessEntities project, it does not find the bin \ Debug \ COS.BusinessEntities.XML file. But I confirmed that this file really exists after the first build, and I do not believe that it is deleted and recreated (but I am open to suggestions on how to verify this). I tried to look at the folder, doing the second assembly, and I never saw it disappear.
, , : OptionsEntities.edmx OptionsEntities.Designer.cs. COS.BusinessEntities.prj :
<Compile Include="Options\Entities\OptionsEntities.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>OptionsEntities.edmx</DependentUpon>
</Compile>
...
<EntityDeploy Include="Options\Entities\OptionsEntities.edmx">
<Generator>EntityModelCodeGenerator</Generator>
<LastGenOutput>OptionsEntities.Designer.cs</LastGenOutput>
</EntityDeploy>
, edmx, , , . , , , ; .
! !
,
EDIT:
XML- XML- , , :
Target "CoreCompile" in file "c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.CSharp.targets":
Building target "CoreCompile" completely.
Input file "C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D36.tmp" is newer than output file "obj\Debug\COS.BusinessEntities.pdb".
Task "Csc"
Command:
c:\WINDOWS\Microsoft.NET\Framework\v3.5\Csc.exe /noconfig /nowarn:1591,1573,0219,0168,1572,1587,1570,1701,1702 /errorreport:prompt /warn:4 /define:DEBUG;TRACE ...
... ! ! ?
2:
Build Output, ( BusinessEntities):
Target "SplitResourcesByCulture" in file "c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets":
Task "Warning" skipped, due to false condition; ('@(ResxWithNoCulture)'!='') was evaluated as (''!='').
Task "Warning" skipped, due to false condition; ('@(ResxWithCulture)'!='') was evaluated as (''!='').
Task "Warning" skipped, due to false condition; ('@(NonResxWithCulture)'!='') was evaluated as (''!='').
Task "Warning" skipped, due to false condition; ('@(NonResxWithNoCulture)'!='') was evaluated as (''!='').
Task "AssignCulture"
Culture of "" was assigned to file "C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D36.tmp".
Culture of "" was assigned to file "C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D38.tmp".
Culture of "" was assigned to file "C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D37.tmp".
Done executing task "AssignCulture".
Done building target "SplitResourcesByCulture" in project "COS.BusinessEntities.csproj".
Target "CreateManifestResourceNames" in file "c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.CSharp.targets":
Task "CreateCSharpManifestResourceName"
Root namespace is 'COS.BusinessEntities'.
Resource file 'C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D36.tmp' doesn't depend on any other file.
Resource file 'C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D36.tmp' gets manifest resource name 'COS.BusinessEntities.tmp6D36.tmp'.
Resource file 'C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D38.tmp' doesn't depend on any other file.
Resource file 'C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D38.tmp' gets manifest resource name 'COS.BusinessEntities.tmp6D38.tmp'.
Resource file 'C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D37.tmp' doesn't depend on any other file.
Resource file 'C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D37.tmp' gets manifest resource name 'COS.BusinessEntities.tmp6D37.tmp'.
Done executing task "CreateCSharpManifestResourceName".
Task "CreateCSharpManifestResourceName" skipped, due to false condition; ('%(EmbeddedResource.ManifestResourceName)' == '' and '%(EmbeddedResource.WithCulture)' == 'true' and '%(EmbeddedResource.Type)' == 'Non-Resx') was evaluated as ('' == '' and 'false' == 'true' and 'Non-Resx' == 'Non-Resx').
Done building target "CreateManifestResourceNames" in project "COS.BusinessEntities.csproj".
:
Target "_GenerateCompileInputs" in file "c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets":
Task "Warning" skipped, due to false condition; ('@(ManifestResourceWithNoCulture)'!='' and '%(ManifestResourceWithNoCulture.EmittedForCompatibilityOnly)'=='') was evaluated as (''!='' and ''=='').
Task "Warning" skipped, due to false condition; ('@(ManifestNonResxWithNoCultureOnDisk)'!='' and '%(ManifestNonResxWithNoCultureOnDisk.EmittedForCompatibilityOnly)'=='') was evaluated as ('C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D36.tmp;C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D38.tmp;C:\Documents and Settings\<my username>\Local Settings\Temp\tmp6D37.tmp'!='' and 'true'=='').
Done building target "_GenerateCompileInputs" in project "COS.BusinessEntities.csproj".
, , temp, , .
!