Visual Studio: Как "скопировать в выходной каталог" без копирования структуры папок?



У меня есть несколько dll-файлов в папке lib моей папки проекта. На странице свойств файлов, я выбрал "действие при построении" как "содержание" и "копировать в выходной каталог" как "всегда копировать".



после сборки я фактически копирую dll, но они находятся внутри binReleaselib, а не в binRelease.



есть ли способ скопировать dll-файлы в binRelease (а не в binReleaselib) без написания сценария после сборки или обращения к nant и т. д.?

889   5  

5 ответов:

вместо <Content> использовать <ContentWithTargetPath> и укажите целевой путь, например:

<ContentWithTargetPath Include="lib\some_file.dat">
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  <TargetPath>some_file.dat</TargetPath>
</ContentWithTargetPath>

обратите внимание, что эта запись может быть не видна из Visual Studio (2012, 2015, 2017), но после добавления вручную в csproj она появится в Visual Studio. Однако целевой путь не будет редактироваться через пользовательский интерфейс.

держать их в $(ProjectDir)\Lib, но добавьте эти файлы"ссылка " к корню вашему .csproj. Теперь они будут скопированы в bin\Debug (или любую другую выходную папку), не находясь в lib.

EDIT: этот ответ был написан еще тогда, когда ContentWithTargetPath не был доступен в версиях VS/MSBuild, которые я использовал. Оставив этот ответ здесь для людей, которые, возможно, придется использовать более старую версию против. Пожалуйста, прекратите комментируя это, мы все знаем, что есть лучшие способы сейчас.

добавьте dll-файлы в качестве ссылки на проект, а на наборе ссылок "копировать локально" в true.

в VisualStudio 2015 кажется, что если DLL, которые вы "добавляете со ссылкой",в подпапке того же проекта - они будут автоматически помещены в папку, и вывод также помещается в папку, как вы видели.

Если библиотеки DLL находятся в другом проекте или каталоге на диске не в подпапке проекта, вы можете 'добавить ссылку', и они будут помещены в корневой каталог просто отлично.

У меня была такая же проблема с проектом Visual Studio 2010 / C#.

для сборок (т. е. имеющих интерфейс .NET) используйте папку "ссылки" под вашим проектом в обозревателе решений. Щелкните его правой кнопкой мыши, выберите "Добавить существующий элемент" и найдите свой .сборка dll.

общие .dll файлы могут быть помещены в подпапку (как" \lib " было упомянуто выше) и в свойствах выберите:

  • Build Action = "HelpFiles"
  • Копировать В OutputDirectory = "Если Новее"

это работало для меня именно так, как хотелось - во время сборки, то .Библиотеки DLL копируются в выходной каталог без вложенной папки "\lib".

Comments

    Ничего не найдено.