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.