Reference Paths not working


(marc hoffman) #41

Well, the thing is you’re reporting different things and mixing them together.

Yes, a lot changed since 2305, as we’re now using our own build chain, EBuild, with does things differently than MSBuild (with has many quirks and unexpected behaviors, such as resolving .dlls from GAC, or not failing on missing references).

You first reported that .dlls weren’t being copied, and I explained what the expected scenario is:

  • For project references, indirect Copy-Local references of the referenced projects should get copied. And they do so here for me. If they don’t for you, I need a test-case for that.

  • For non-project references (direct references to a .dll) only that .dll (and associated debug symbol and xml doc files) will be copied — as the compiler has not way to “properly” know what you’d want copying or not. If you want to use non-project references, you need to add indirect references to your project as well, to have them copied. (from what you say, MSBuild goes by what .dlls are in the local GAC, but that seems extremely non-deterministic and unsafe. This never worked “properly” for you, you just got lucky).

A completely separate issue form that is the .txt file.

The only contract her tis that as you build your Class Library, that file will be placed next to it. These files will not be copied along for references (although I could log a feature request to have that happen for project references, but I’m not sure if this is actually desirable behavior. For non-project references, again, it;'s completely undeterminable what files you’d want to copy; again you’d need to have them added to the main project and marked as Copy Always, there.

I hope that makes sense.

(alexfelton) #43

Ok, now I understand that you are using your own build chain which would explain behaviour differences

  1. Reference Paths (which was the original issue I noticed) - fixed
  2. DLL’s not being copied, this is controlled by the <Private>True|False</Private> element under a <Reference> element, though seems MSBuild doesn’t treat the absence of the element as False but looks like the behaviour is to Copy if the reference isn’t in the GAC (just an assumption) - fixed by setting Copy Local - True
  3. A Content file marked as Copy Always in one project should also be copied to dest directory of another project, if a project reference is used. MSBuild does this, so I guess EBuild should do same

I’m not saying that EBuild is wrong, just that as an end user, it was a bit confusing to figure out why things that built fine were now producing unexpected results. Some of these projects have been the same for years

Happy New Year

(RemObjects) #45

Thanks, logged as bugs://81662