Компилятор C # не находит dll;решение скомпилировано в VS2010 - PullRequest
1 голос
/ 29 сентября 2011

У меня есть решение на C # и некоторые ссылки на dll-ы. Хотя при компиляции в visual studio (vs2010) он выглядит так, как он был успешным, при использовании компилятора C # происходит сбой: очевидно, отсутствует dll ..

csc /t:library /out:test.dll test.cs


test.cs(22,10): error CS0246: The type or namespace name
    'Attribute' could not be found (are you missing a using directive
    or an assembly reference?)

Кто-нибудь знает, почему это происходит?

Ответы [ 2 ]

4 голосов
/ 29 сентября 2011

Поскольку вы не указали код, неясно, что означает тип Attribute. Если это System.Attribute, я ожидаю, что он будет найден автоматически по ссылкам сборки по умолчанию. Если это тип в другой сборке, вам нужно явно ссылаться на него из командной строки:

csc /t:library /out:test.dll /r:OtherAssembly.dll test.cs
2 голосов
/ 29 сентября 2011

CSC ничего не знает ни о проекте, содержащем test.cs, ни о библиотеках, на которые ссылается этот проект.

Вы должны использовать ключ / r для ссылки на другие сборки. Обратите внимание, что в папке, содержащей csc.exe, есть файл csc.rsp, в котором указываются параметры командной строки по умолчанию. Он содержит большинство обычных сборок .NET Framework, поэтому вам не нужно явно ссылаться на mscorlib.dll, например.

...