I have a setup project in .NET. When I save the project and the other projects to subversion, the setup project no longer compiles. I get the error \"Unable to update dependenci
When I get this error I find my VS2010 deployment project (.vdproj) is 'corrupted'. Specifically, items in the FILE section of the VDPROJ file have GUID's that are missing from the HIERARCHY section of the VDPROJ file. This is described in detail below.
1) VS2010 deployment projects include the following sections:
"Hierarchy"
{
}
"Deployable"
{
"File"
{
}
}
2) The HIERARCHY section contains GUIDs for each item (e.g. file) added to the deployment project. In addition, each file added to the project appears as an item under the DEPLOYABLE > FILE section. The following example shows a normal configuration for the file msimg32.dll. Note the matching GUID (i.e. _1C15DB39774F7E79C84F1CC87ECFD60A) in the HIERARCHY and FILE sections.
"Hierarchy"
{
"Entry"
{
"MsmKey" = "8:_1C15DB39774F7E79C84F1CC87ECFD60A"
"OwnerKey" = "8:_0C67A6B6004040DC93A0113E1100615D"
"MsmSig" = "8:_UNDEFINED"
}
}
"Deployable"
{
"File"
{
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1C15DB39774F7E79C84F1CC87ECFD60A"
{
"SourcePath" = "8:MSIMG32.dll"
"TargetName" = "8:MSIMG32.dll"
… more information ...
}
}
}
3) My VS2010 deployment projects can be corrupted in two ways:
a) An item in the FILE section is duplicated and the duplicated item is given a GUID which does not appear in the HIERARCHY section.
b) The GUID associated with an item in the FILE section has been removed from the HIERARCHY section (i.e. the item in the FILE section is orphaned).
3a) Example of first problem - duplicated item in FILE section:
In this example, the file msimg32.dll has two entries in the FILE section. The first (i.e. correct) entry has a matching GUID (i.e. _1C15DB39774F7E79C84F1CC87ECFD60A) in the HIERARCHY section, but the GUID for the second (i.e. error) entry (i.e. 2DDC4FA12BFD46DEAED0053D23331348) does not appear in the HIERARCHY section.
"Hierarchy"
{
"Entry"
{
"MsmKey" = "8:_1C15DB39774F7E79C84F1CC87ECFD60A"
"OwnerKey" = "8:_0C67A6B6004040DC93A0113E1100615D"
"MsmSig" = "8:_UNDEFINED"
}
}
"Deployable"
{
"File"
{
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1C15DB39774F7E79C84F1CC87ECFD60A"
{
"SourcePath" = "8:MSIMG32.dll"
"TargetName" = "8:MSIMG32.dll"
… more information ...
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2DDC4FA12BFD46DEAED0053D23331348"
{
"SourcePath" = "8:MSIMG32.dll"
"TargetName" = "8:MSIMG32.dll"
… more information ...
}
}
}
3b) Example of second problem - orphaned item in the FILE section:
In this example, the file msimg32.dll has an entry in the FILE section. But the GUID associated with this entry (i.e. A515046ADA6244F2A260E67625E4398F) does not have a matching entry in (i.e. it is missing from) the HIERARCHY section.
"Hierarchy"
{
}
"Deployable"
{
"File"
{
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A515046ADA6244F2A260E67625E4398F"
{
"SourcePath" = "8:MSIMG32.dll"
"TargetName" = "8:MSIMG32.dll"
… more information ...
}
}
}
4) Solution: For both problems illustrated above, the solution is to delete the orphaned item in the FILE section.
The following example shows how the FILE section in point 3a above would appear after the second entry for msimg32.dll has been deleted.
"Hierarchy"
{
"Entry"
{
"MsmKey" = "8:_1C15DB39774F7E79C84F1CC87ECFD60A"
"OwnerKey" = "8:_0C67A6B6004040DC93A0113E1100615D"
"MsmSig" = "8:_UNDEFINED"
}
}
"Deployable"
{
"File"
{
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1C15DB39774F7E79C84F1CC87ECFD60A"
{
"SourcePath" = "8:MSIMG32.dll"
"TargetName" = "8:MSIMG32.dll"
… more information ...
}
}
}
5) I found the corrupted entries in the VDPROJ only occurred for: