Где хранятся ссылки на сборки проекта веб-приложения? - PullRequest
10 голосов
/ 17 июля 2009

Где хранятся ссылки на сборки для веб-приложения?

На веб-сайте я вижу теги сборки, записанные в узел сборки в файле web.config при добавлении ссылки. Мне просто любопытно, как проект веб-приложения устанавливает соединение для получения правильной локальной библиотеки DLL?

Я вручную добавляю ссылку и сборки приложения, но dll не импортируется в папку BIN, и узлы сборки не создаются в веб-конфигурации, как они находятся на веб-сайте. Я делаю поиск решения для текста 'assembly = "SomeAssembly ...", и никаких результатов не найдено.

Мне просто любопытно, поскольку я пытаюсь централизовать обновление ссылок на сборки, поскольку сторонний поставщик элементов управления регулярно выпускает исправления, и в итоге нам приходится бегать и обновлять все ссылки на отдельные страницы в сборке. Мне удалось сделать это эффективно в проекте веб-сайта, но я довольно новичок в проектах веб-приложений. Любые советы или ссылки будут оценены. Наверное, мне нужны советы по сборке и управлению ссылками для проектов веб-приложений ASP.NET.

Ответы [ 4 ]

3 голосов
/ 17 июля 2009

Как и большинство проектов Visual Studio, ссылки хранятся в проекте.

Существует два вида ссылок:

Ссылки на проекты - это ссылки на другой проект в том же решении. Они выглядят так:

<ProjectReference Include="..\VBClassLibrary1\VBClassLibrary1.vbproj">
  <Project>{045D7D9F-8E44-4C4B-95F8-620E86593C5B}</Project>
  <Name>VBClassLibrary1</Name>
</ProjectReference>

Ссылки на файлы - это ссылки на произвольный файл на диске:

<Reference Include="System.Core">
  <RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>

Если развернуть папку «Ссылки» и щелкнуть ссылку, а затем заглянуть в окно «Свойства», вы увидите, что оба типа ссылок имеют свойство «Копировать локально». Для ссылок проекта это значение по умолчанию true, для ссылок файла - false (хотя, возможно, это только в том случае, если файл находится в GAC). Изменение по умолчанию добавляет:

  <Private>False</Private>
2 голосов
/ 17 июля 2009

Поскольку сборка не была импортирована в папку BIN, и ваше приложение работает, я предполагаю, что она хранится в GAC (глобальный кэш сборок) и помечается как «copy local = false» в ссылочных свойствах. Вы не видите ссылку на сборку в файле web.config, поскольку ваш код сборки - YourApp.dll (который всегда создается для веб-приложений) содержит стандартную ссылку на сборку для этой сборки. Когда вы запускаете приложение, оно загружает сборку из GAC.

1 голос
/ 17 июля 2009

Эти "отсутствующие" библиотеки, вероятно, находятся в Global Assembly Cache и доступны для всех приложений .NET.

Вы можете добавить контрольные ссылки в раздел pages / controls файла web.config, который будет применяться ко всем страницам в приложении.

0 голосов
/ 29 марта 2019

У меня была та же проблема, удаление папки .vs в каталоге проекта решило проблему для меня, так как это вызвало пересоздание файла .suo, который (хотя и кусался код) имел ссылку на файл web.config в неправильном каталог

...