The dependencies for the object cannot be determined
Our automated TeamCity builds would fail for one of our .Net setup projects (vdproj) which included a particular ActiveX control, the GeoVision LiveX control. The build process utilized the devenv.com command line method of building a .Net solution.
e.g., devenv.com “MySolution.sln” /rebuild “Release|AnyCPU”
The application project would compile just fine, but you would see the following error whenever the setup project tried to compile:
"ERROR: Unable to update the dependencies of the project. The dependencies for the object 'Interop.LIVEXLib.dll' cannot be determined."Luckily I found a hint in the right direction: https://connect.microsoft.com/VisualStudio/feedback/details/552799
Johan Spännare suggests that you “Manually edit your .vdproj file [in notepad]. And remove everthing in the "File" tag.”
This option is not perfect for me since I also have set particular options for some of the files found in this section.
I found a slightly less nuclear option would be to just remove all references to the library that is causing the problem, which works since I don't have any particular options set for it beyond the defaults that Visual Studio applies to it.
So I ended up remove 3 sections, the one that referred to Interop.LIVEXLib.dll, AxInterop.LIVEXLib.dll, and of course the ActiveX control that these two referred two, LiveX_8320.ocx.
Each section looked something like the following but with SourcePath field referring to one of the files I mentioned.
"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BE80CBD47768DB03324AE850B3E5FEC9"
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
"AssemblyAsmDisplayName" = "8:Interop.LIVEXLib, Version=2.0.0.0, Culture=neutral, processorArchitecture=x86"
"ScatterAssemblies"
{
"_BE80CBD47768DB03324AE850B3E5FEC9"
{
"Name" = "8:Interop.LIVEXLib.DLL"
"Attributes" = "3:512"
}
}
"SourcePath" = "8:Interop.LIVEXLib.DLL"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_5C2E849E03D449AAAA36EFF16F8E91C6"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
After I removed those 3 sections with notepad, I saved the file. I committed my changes to the SVN, and waited for TeamCity to rebuild the whole solution. The build succeeded.
So now I just have to remember to perform that process every time someone makes a change to the setup project (which happens frequently enough).
Next step: automate this removal process.