"*.csproj jest w innej ścieżce *.cs" - możesz pogmerać ręcznie w pliku projektu (csproj), to xml, więc możesz spróbować podać tam ścieżki względne do jakiegoś cs, chociaż nie wiem jak VS się zachowa i czy czegoś później nie zmieni. Spróbuj. Chciałbyś włączyć cs z innego projektu do swojego? to nie tędy droga.
"dll jeszcze gdzie indziej" - jako referencje podpinasz bibliotekę która może być w różnych lokalizacjach, nie ma z tym problemu. Jeśli dll ma się nie kopiować do folderu kompilacji ustaw to w jej właściwościach. Jednak ma to głównie sens dla bibliotek, które framework potrafi sam odnaleźć, np. w gac, chyba że później jakimś innym mechanizmem dostarczasz odpowiednie biblioteki.