У меня есть проект веб-приложения. У меня есть DLL, которые я ссылаюсь в проекте, хранящемся в моем bin/folder. Ну, всякий раз, когда я делаю пересоздание или очищение от Visual Studio, он удалит все в этой папке. Как я могу предотвратить это?
Держите визуальную студию от удаления всего, от bin/on rebuild?
Ответ 1
Я буду избегать вопроса "почему" и просто указать, как это сделать. Отметьте файлы как только для чтения, и VS не должен их удалять.
Ответ 2
Не кладите ничего в корзину. bin - целевая папка для двоичных файлов - это не исходная папка для двоичных файлов.
Создайте себе папку lib
или что-то в этом духе, чтобы вставить свои сторонние двоичные файлы. Вы даже можете назвать его "сторонними бинарниками", поскольку не все знают, что "lib" означает одно и то же. Сделайте ссылку на двоичные файлы в этой папке, и Visual Studio скопирует их в bin
, когда это необходимо (в том числе при перестройке).
Ответ 3
Следуйте за Джоном Сандерсом и положите вашу .dll в отдельную папку. В моем случае я назвал эту папку "ServerAssemblies". Затем измените файл проекта (.csproj в моем случае) и добавьте цель "AfterRebuild".
<Target Name="AfterRebuild">
<ItemGroup>
<ExtraAssemblies Include="$(SolutionDir)ServerAssemblies\**\*.*"/>
</ItemGroup>
<Copy SourceFiles="@(ExtraAssemblies)" DestinationFolder="$(ProjectDir)bin\"></Copy>
</Target>
Ответ 4
Можете ли вы объяснить, почему вы должны сохранить его в папке bin для начала? Я всегда создаю отдельную папку, например /components, где я храню все ссылающиеся DLL.
Ответ 5
Одна вещь: "Не делай так!" люди забывают, это контроль источника и стороннее программное обеспечение. Используя SVN, вы часто получаете файлы, которые, если бы использовались физические ссылки, создавали бы несоответствия, если они не находятся в одном и том же физическом местоположении.
Одна CMS, с которой я сейчас работаю, предварительно создает проект VS и решение, когда вы настраиваете другой "экземпляр" этого. Он сбрасывает некоторые DLL файлы, которые ему нужны... но если вы их восстановите, они исчезнут.
Простым решением в обоих случаях является выполнение, как указано выше, и его выполнение.