У меня есть собственный пакет nuget, содержащий некоторые собственные DLL-файлы.Nuget скопировать родную dll в вывод
Когда я создаю проект, который ссылается на пакет nuget, я хочу, чтобы все файлы из пакета nuget были скопированы в выходной каталог.
Как создать такой nuget pacakge, который копирует файлы в выходной каталог?
Я пытался использовать Baseclass.Contrib.Nuget.Output, но я не могу заставить его работать на моем сервере сборки (TFS 2013):
C: \ Строит \ 1 \ MyProject \ BUILDNAME \ SRC \ MyProject \ Пакеты \ Baseclass.Contrib.Nuget.Output.2.1.0 \ build \ net40 \ Baseclass.Contrib.Nuget.Output.targets (73): Исходный файл для этой компиляции можно найти по адресу: «C: \ Users \ MHABLDSvc \ AppData \ Local \ Temp \ fd4f7f9d-59e3-4f6a-af8c-6a48deb7af3e.txt»
C: \ Builds \ 1 \ MyProject \ BuildName \ src \ MyProject \ Packages \ Baseclass.Contrib.Nuget.Output.2.1.0 \ build \ net40 \ Baseclass.Contrib.Nuget.Output.targets (73): ошибка произошел во время компиляции. ошибка CS1705: сборка «Microsoft.Build.Utilities.Core, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a» использует «Microsoft.Build.Framework, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a», который имеет более высокую версию, чем ссылка сборки 'Microsoft.Build.Framework, Version = 12.0.0.0, Culture = нейтрально, PublicKeyToken = b03f5f7f11d50a3a'
C: \ Строит \ 1 \ MyProject \ BUILDNAME \ src \ MyProject \ Packages \ Baseclass.Contrib.Nuget.Output.2.1.0 \ build \ net40 \ Baseclass.Contrib.Nuget.Output.targets (73): Задача «PackageFilter» не найдена. Проверьте следующее: 1.) Имя задачи в файле проекта совпадает с именем класса задачи. 2.) Класс задачи является «общедоступным» и реализует интерфейс Microsoft.Build.Framework.ITask. 3.) Задача правильно объявлена в файле проекта или в файлах * .tasks, расположенных в каталоге «C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin \ amd64».
C: \ Строит \ 1 \ MyProject \ BUILDNAME \ SRC \ MyProject \ Packages \ Baseclass.Contrib.Nuget.Output.2.1.0 \ построить \ net40 \ Baseclass.Contrib.Nuget .Output.targets (73): во время компиляции произошла ошибка. ошибка CS1705: сборка «Microsoft.Build.Utilities.Core, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a» использует «Microsoft.Build.Framework, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a», который имеет более высокую версию, чем ссылка сборки 'Microsoft.Build.Framework, Version = 12.0.0.0, Culture = нейтрально, PublicKeyToken = b03f5f7f11d50a3a'
C: \ Строит \ 1 \ MyProject \ BUILDNAME \ src \ MyProject \ Packages \ Baseclass.Contrib.Nuget.Output.2.1.0 \ build \ net40 \ Baseclass.Contrib.Nuget.Output.targets (73): Задача «PackageFilter» не найдена. Проверьте следующее: 1.) Имя задачи в файле проекта совпадает с именем класса задачи. 2.) Класс задачи является «общедоступным» и реализует интерфейс Microsoft.Build.Framework.ITask. 3.) Задача правильно объявлена в файле проекта или в поле *.файлы задач, расположенные в каталоге «C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin \ amd64».
Почему не устанавливая CopyLocal ваших ссылочных сборок в файле проекта? – wonko79
, потому что они не являются сборками, и на них не ссылаются. – Liero
Вы можете сделать это с любым файлом, добавленным в ваш проект. Но тогда свойство называется Copy to Output Directory. Тогда это также сработает для локальных сборок. – wonko79