Jack Tripper

i'm getting the error message

Description: Metadata file 'C:\Program Files\Microsoft Composite UI App Block\CSharp\Source\CompositeUI.WinForms\bin\Debug\Microsoft.Practices.CompositeUI.WinForms.dll' could not be found

File:

Line:

Column:

Project: ModuleLoaderShell

What file is it really looking for It's complaining about a "metadata file"; but a dll is a dll. Is it looking for an assembly dll, or is it looking for a metadata file

i double-click the error, but i'm not taken anywhere. What file in the project is trying to load this There must be some file in the project somewhere, at some level, that thinks it wants this .dll - why am i not being brought to the text, xml, or binary file that has the words "Microsoft.Practices.CompositeUI.WinForms.dll" in it so i may delete it

i click on the error and push F1, and i see

The program was compiled and explicitly passed the name of a file that contained metadata; however, the .dll was not found. For more information, see /reference (Import Metadata) (C# Compiler Options).

i don't recall explicitly passing the name of a file that contains metadata. What is the extension of a metadata file Microsoft.Practices.CompositeUI.WinForms.dll.metadata

Why is there no file, line, or column specified Assuming the error really is referring to the "References" in the .csproj file, then it would have said:

File: ModuleLoaderShell.csproj

Line: 79

Column: 32

Project: ModuleLoaderShell

So i assume it's not referring to one of the references in the project. If it were, double-clicking the error would open me up into the ModuleLoaderShell.csproj file. Alternativly, when i double click the error it would bring me to the ModuleLoaderShell project, or into the References node of the ModuleLoaderShell project. This further makes me believe that it has nothing to do with a bad reference to as assembly dll.

Finally, if the problem does have something to do with a missing assembly dll, the reference properties says "Resolved". Because it's resolved, it can't be a missing assembly dll.

So, how do i find who is trying to ask for this metadata file, how do i delete it



Re: Visual C# Language Metadata file 'foo.dll' could not be found

Peter Ritchie

Sounds like one of the Enterprise Library blocks. You might try the discussions at http://www.codeplex.com/entlib/






Re: Visual C# Language Metadata file 'foo.dll' could not be found

Jack Tripper

> Sounds like one of the Enterprise Library blocks.

i'm more interested in what this means - so i can solve it myself.

Imagine instead it said:

Description: Metadata file 'C:\WINDOWS\assembly\GAC\System.Drawing\1.0.5000.0__b03f5f7f11d50a3a\System.Drawing.dll' could not be found

File:

Line:

Column:

Project: ModuleLoaderShell

i still have all my questions. What is a metadata file What line is what file is making VS think it wants this metadata file Why does double-clicking not take me to that line...

All the questions i still have.

i mean, it could have said

The referenced assembly file 'C:\...\System.Drawing.dll' could not be found

But it instead talks about a metadata file.





Re: Visual C# Language Metadata file 'foo.dll' could not be found

Jack Tripper

> http://www.codeplex.com/entlib/

p.s. i've been there. i agree with one of the discussion posters: they really need a forum of their own.

Questions asked in the comments section of a blog is not a good support system for an "enterprise" class system.





Re: Visual C# Language Metadata file 'foo.dll' could not be found

Peter Ritchie

That's not a blog. That's the primary discussion board for Enterprise Library Blocks.

Is this an ASP.NET application by chance






Re: Visual C# Language Metadata file 'foo.dll' could not be found

Jack Tripper

> Is this an ASP.NET application by chance

There's not any chance of that, no.





Re: Visual C# Language Metadata file 'foo.dll' could not be found

Jack Tripper

i asked this question a few weeks ago

http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=2206525&SiteID=1

but people confused the question with the example.

i get an error message in Visual Studio 2005 saying

Description: Metadata file 'foo.dll' could not be found

File:

Column:

Project: foo

Questions:

1. What is a metadata file

2. Why does Visual Studio 2005 think a dll is a metadata file

3. Why, when i click on the error line, am i not brought to the spot in a whatever file that is causing Visual Studio 2005 to look for this metadata file

4. Can i make Visual Studio 2005 not require metadata files, and only use the foo.dll instead





Re: Visual C# Language Metadata file 'foo.dll' could not be found

Shadowin

1. A metadata file is an assembly that contains only meta data and type information.

2. Because the particular dll is a meta data assembly.

3. You have a bad reference. Fix the reference to the dll or remove it.

4. Foo.dll is a meta data assembly, so this is impossible.

Check out this link for more information.






Re: Visual C# Language Metadata file 'foo.dll' could not be found

Jack Tripper

If i add code to an assembly it will cease to be a metadata file and become an assembly dll

The link you provided did not show any project options were needed to indicate that an assembly dll is actually a metadata file. Is it strictly a logical distinction, because the assembly happens to have no code

Put it another way: did i ask Visual Studio to make my assembly dll a metadata file, and i've just forgotten.

Note: i didn't write it, so the original guy would have made it a metadata file rather than as assembly dll.





Re: Visual C# Language Metadata file 'foo.dll' could not be found

Shadowin

You didn't specify that it was a meta data file. Someone had to make it that way. Visual Studio knows this when the reference is added. Is foo.dll in your reference list






Re: Visual C# Language Metadata file 'foo.dll' could not be found

Jack Tripper

Shadowin wrote:

You didn't specify that it was a meta data file. Someone had to make it that way.

i don't understand; what do you mean someone had to make it that way. What exactly did they make Do you mean they made it using: File->New->Project->Visual C#->Windows->Metadata file, and that's the way it was made

Or did they do File->New->Project->Visual C#->Windows->Class Library and just haven't gotten around to adding code to it yet

Visual Studio knows this when the reference is added.

Did Visual Studio poke through the DLL and see that it had no code inside, and so referred to it as a metadata file, and if instead when it poked through the DLL it saw code it would then refer to it as an assembly file





Re: Visual C# Language Metadata file 'foo.dll' could not be found

Peter Ritchie

The only time I've seen this is with ASP.NET applications or a assembly is corrupted.






Re: Visual C# Language Metadata file 'foo.dll' could not be found

Jack Tripper

Jack Tripper wrote:

i get an error message in Visual Studio 2005 saying

Description: Metadata file 'foo.dll' could not be found

File:

Column:

Project: foo

The answer is that there is no such thing as a "metadata" file. It's actually not able to find a "dll" file.

This is most likely because it was unable to buld foo.dll, and this error message is a decoy.





Re: Visual C# Language Metadata file 'foo.dll' could not be found

Chris Eargle

Please provide a source that there is no such thing as a metadata file. Articles on Microsoft's website suggest otherwise, and I've linked to at least one.






Re: Visual C# Language Metadata file 'foo.dll' could not be found

Jack Tripper

Chris Eargle wrote:

Please provide a source that there is no such thing as a metadata file. Articles on Microsoft's website suggest otherwise, and I've linked to at least one.

Feel free to post the link in this thread - i'd be interested to see the difference between a "metadata file" and a "dll"