In the bin / Release folder, the total turns out to be the dll + xml in the bundle. How can I find out which Reference each dll refers to?

The idea is that there are so many References and the dll should be in the bin / Release directory, right? In my case, this is not the case: in addition, other dlls are created that somehow relate to References. But how to reveal this attitude?

Thank!

PS I use third-party components (DevExpress), but the question is still common.

  • complete information on all files that are used in the project, including assemblies, is in the file with the .csproj extension, see my answer. - Stack
  • And does not the DevExpress Assembly Deployment Tool show? - skubarenko
  • As far as I understand, references work recursively: if a project requires one dll, and this dll requires another, then the other also loads. - VladD
  • Maybe. But how to know for sure? After all, DL-dependence should be somewhere visible, but it is not. - UnityMan

3 answers 3

In the properties of each Reference there is a parameter CopyLocal. If true - then sootv. Dllka will be copied when compiling to a folder with binaries. Also there will get files that are added to the project and in the properties of which the value of the 'Copy to Output Directory' field is appropriately set, for example, these can be third-party dlls that your application needs or other files, such as a local database. Also in the project properties in the 'Build Events' section there are fields for recording scripts executed before and after compilation. And there may well be instructions for copying files (any, anywhere). And still various manufacturers for localization use resource resources (for each language), for example, manufacturers of controls - for sure. These dlls (or even folders with dlls) eventually also end up in a folder with binaries

    1. Open the References node, select the assembly, in the context menu, click on Properties.

    enter image description here

    1. In the Properties tab that opens, look at the file name in the Path property.

    enter image description here

    • It does not show full dependence on dll. Completed the information in question. - UnityMan

    If the project is created in Visual Studio, then the project has a project name file.csproj. This is the usual xml. Open it in any text editor.
    It has Reference tags and comes with a COMReference. Some of the Reference tags contain the names of the dll files, some of which correspond to the files in \ bin \ Release.

    The .NET assembly (dll or exe) can be opened in ildasm.exe and see the dependencies.

    • if you do not have copies of these files, then copy. After that, in Visual Studio, call the context menu of the project and select Clean. and then Build. what is now in \ bin \ Release - as well as or less? - Stack
    • Nothing changed. - UnityMan
    • Is there only one project in Solution? - Stack
    • Only one. I do not exclude that just some dll require the presence of others, which is why it turns out. But how to know for sure? I downloaded even specials. the Dependacy Walker utility - but it did not show what I expected to see. - UnityMan
    • dependencies are written directly in the dll - added to the answer. - Stack