2016-04-19 4 views
1

Я новичок в C# и .net в целом, и мне нужно использовать его для работы с SDK для основного программного обеспечения, которое мы используем.C# Web Api/MVC.net неправильно загружает сборки

Я могу добавить сборки, которые они скажут мне, чтобы добавить консольное приложение, и все работает нормально. Когда я пытаюсь добавить их в любое веб-приложение (MVC или WebAPI), я продолжаю получать ошибки, говорящие о том, что другие сборки отсутствуют. В конце концов я просто добавил каждую сборку/ссылку (не уверен, что правильный термин для этого, в основном, только DLL-файлы) в папке sdk, и теперь он работает. Это определенно не может быть правильным способом сделать это.

Есть ли что-то, что мне не хватает, что позволяет сборкам/ссылкам загружать другие сборки/ссылки или что-то еще является причиной моей проблемы?

UPDATE:

Исключения, как правило, что-то вроде этого:

Could not load file or assembly 'Server, Version=1.5.1.0, Culture=neutral, PublicKeyToken=d11ef57bba4acf91' or one of its dependencies. The system cannot find the file specified. 

И это не происходит во время сборки, только тогда, когда функция фактически вызывается из веб-приложения (в моем случае, поскольку это api, когда я посещаю URL-адрес, возвращающий данные JSON)

+0

Где dll-s физически расположен? Все ли другие DLL-файлы в одной папке? – Dusan

+0

Все эти DLL-файлы находятся в одной папке, и, как я уже сказал, это прекрасно работает, когда я включаю только те, которые, по словам руководства sdk, включают при создании консольных приложений. Это работает только при создании веб-приложений. – Michael

+0

Является ли папка с dll внутри папки приложения или где-то еще? – Dusan

ответ

0

Вы можете использовать инструмент под названием «IL Disassembler», который устанавливается вместе с Visual Studio, чтобы узнать, какие другие зависимости зависят от сборки SDK.

Установочный расположение может меняться, но у меня это здесь ... "C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v10.0A \ Bin \ NETFX 4.6 Tools \ ildasm.exe"

Перетащите узел SDK, который вы используете на инструменте, и щелкните поле манифеста. Откроется диалоговое окно с другими сборками, которые вам нужно будет включить.

enter image description here

0

Если консоль работает приложение, но веб-приложение не то исключение должно указать, какой узел отсутствует.

Сравните ваш консольный выходной каталог с выводом каталога вашей веб-сборки. Убедитесь, что требуемая DLL развертывается в веб-каталоге, в котором вы работаете.

В визуальной студии с вашим веб-проектом найдите сборку по ссылкам и выберите ее. Убедитесь, что для свойства «Копировать локальное» установлено значение «ИСТИНА».

Смежные вопросы