Добавить не-GAC ссылку на проект - PullRequest
2 голосов
/ 22 декабря 2008

Каждый раз, когда я добавляю ссылку на веб-проект в Visual Studio 2008, который находится в моем GAC, он добавляет ссылку в качестве ссылки GAC и не копирует файл в мой каталог bin. Но для целей развертывания я хотел бы добавить ссылку как ссылку не-GAC, чтобы она добавляла dll в каталог bin. Я пытался использовать кнопку обзора, чтобы выбрать ссылку вместо выбора из окна списка, но это также добавляет ссылку GAC.

Все эти ссылки содержат файл .refresh, и в свойствах файла нет возможности скопировать local.

Любая помощь, пожалуйста?!?

Ответы [ 8 ]

4 голосов
/ 22 декабря 2008

Щелкните правой кнопкой мыши ссылку, выберите свойства, переключите Копировать локально с False на True

2 голосов
/ 02 декабря 2009

Крис, вы, вероятно, давно преодолели эту проблему, но я наткнулся на ваш вопрос, пытаясь сделать то же самое в VS 2005. На случай, если кто-нибудь еще придет сюда в поисках решения ....

Вы правы, конечно, в том, что веб-проект не предоставляет вам опцию копировать локально в ваших ссылках, как это делает обычный проект, поэтому решение «Копировать локально ...» не является стартовым.

Я решил эту проблему, просто добавив существующий файл в каталог bin моего веб-приложения. Недостатком является то, что он не добавляет ссылку на обновление, поэтому если вы перестраиваете внешний файл, вам придется вручную обновить локальную копию.

1 голос
/ 10 ноября 2010

Еще один способ сделать это - просто вручную создать папки XXX.dll.refresh и добавить их в каталог bin.

На самом деле я создаю небольшой вспомогательный проект, чтобы добавить все файлы в папку решений \ Зависимости. Извините за VB.NET, но он быстрый и, кажется, делает то же самое, что и VS.

    For Each fullFileName In Directory.GetFiles("..\..\..\Dependencies\", "*.DLL")
        Dim shortFileName = Path.GetFileName(fullFileName)
        Dim refreshFileName = shortFileName + ".refresh"

        Dim contents = "..\Dependencies\" + shortFileName

        File.WriteAllText(refreshFileName, contents)
    Next
1 голос
/ 05 октября 2010

1) Удалите ссылку GAC из вашего проекта

2) Закрыть Visual Studio

3) gacutil / uf [YourDllName] (gacutil.exe должен быть найден в "C: \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin")

4) Снова откройте VS и добавьте ссылку на вкладке «Обзор». у вас будет dll, скопированная в вашу папку bin и файл .refresh (больше нет зависимости от GAC) +++

1 голос
/ 10 августа 2010

Как кто-то еще упомянул, вы, вероятно, давно преодолели эту проблему, но я думал, что я добавлю свое решение в микс.

Моя проблема была немного другой. Я хотел, чтобы версия DLL не была GAC, чтобы мой сервер сборки мог скомпилировать проект, не устанавливая DLL на данном сервере.

Чтобы исправить это, я отредактировал файл .csproj (.vbproj) вручную (с помощью блокнота) и обновил справочный файл, указав локальную версию. Если это окажется проблематичным в будущем, мне придется удалить проект и просто использовать .dll.

В моем случае я изменил строку:

<Reference Include="Microsoft.Data.Entity.CTP, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

должно быть:

<Reference Include="Microsoft.Data.Entity.CTP, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\Lib\Microsoft.Data.Entity.CTP.dll</HintPath>
</Reference>

, где ..\Lib - каталог на уровне решения, на один каталог выше файла проекта.

1 голос
/ 22 декабря 2008

Установить для копирования локальный

0 голосов
/ 20 апреля 2013

Я часами пытался решить эту проблему и наткнулся на пост, в котором говорилось, что нужно открыть Visual Studio от имени администратора. Это решило проблему. Все указанные библиотеки были добавлены в папки bin.

0 голосов
/ 22 декабря 2008

Если вы ссылаетесь на стандартные сборки .NET Framework, то, насколько я понимаю, у вас не может быть его локальной копии. Единственный способ - установить фреймворк на целевой компьютер.

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

Вы также можете попробовать удалить сборку из GAC с помощью gacutil.exe в Windows SDK и посмотреть, что произойдет сейчас, если вы попытаетесь добавить ссылку на вкладке «Обзор».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...