2017-02-22 10 views
-1

У меня есть пакет nuget с включенными некоторыми dll. У меня есть dll на контенте, всегда копируйте.Nuget: копировать dll для вывода

DLL's Copy Always

Когда я установить NuGet упаковывает библиотеки DLL являются не установлены на копии всегда. Я прочитал об использовании Install.ps1 (Stackoverflow link). Но это не работает для NuGet версии 3.х (См этой ссылке:. Nuget documentation) Другой Approch дано слышать не ясно для меня

Код можно найти на Github а также на Nuget

...

Это файл, в котором он используется:

public class CoordinateConverterUtilities 
{ 
#if WIN64 
    private const string DllImport = @"Plugins/ETRS89_LAMBERT_UTM_64bits.dll"; 
#else 
    private const string DllImport = @"Plugins/ETRS89_LAMBERT_UTM_32bits.dll"; 
#endif 

    #region Coordinate conversion functions using NGI DLL 

    //Import the dll with the functions to calculate lambert coordinates 
    [DllImport(DllImport, SetLastError = true, CharSet = CharSet.Auto)] 
    public static extern int GeoETRS89ToLambert72(double Xi, double Yi, double Zi, ref double xo, ref double yo, ref double Ho); 

    [DllImport(DllImport, SetLastError = true, CharSet = CharSet.Auto)] 
    public static extern int Lambert72ToLambert08(double Xi, double Yi, double Zi, ref double xo, ref double yo, ref double Ho); 

    [DllImport(DllImport, SetLastError = true, CharSet = CharSet.Auto)] 
    public static extern int Lambert72ToGeoETRS89(double Xi, double Yi, double Zi, ref double xo, ref double yo, ref double Ho); 

    #endregion 
} 

Может кто-нибудь мне помочь или объяснить

+0

Сохраняя имя пакета секрет не помогает нам помочь вам. Нет убедительной причины, по которой сценарий install.ps1 не будет выполнять эту работу. Кроме одного, им иногда нужно, чтобы VS выполнял повышенный уровень. Поэтому запустите VS, щелкнув правой кнопкой мыши его ярлык и выбрав «Запуск от имени администратора» и попробуйте снова установить пакет. С ожиданием, что ваш проект теперь имеет действительное событие после сборки. Если это не поможет, обратитесь к автору пакета для поддержки. –

+0

@ HansPassant, прежде всего, это мой, поэтому я могу его адаптировать. Вторая поддержка скриптов Powershell была изменена, чтобы больше не выполнять сценарии установки и удаления, но сценарии инициализации все еще выполняются. См. Следующую ссылку: http://blog.nuget.org/20151008/NuGet-3-What-and-Why.html. – kevingoos

+0

@HansPassant Я также добавил github и nuget к вопросу. – kevingoos

ответ

1

Если вы хотите, чтобы эти DLL файлы должны быть развернуты с скомпилирован сборки следует положить й? em в папку lib, а не в content.

Сценарий ps должен работать, но я бы выполнил стандартный маршрут и установил дополнительные зависимости в lib.

Ссылка: https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package#from-a-convention-based-working-directory

+0

Я пробовал это, но он не работает для меня – kevingoos

+1

Что не работает для вас? Помещение dll в lib работает автоматически, если вы создаете файл .nuspec. Эта DLL должна ссылаться на ваш проект или нет? Если да, то lib - путь. Если нет, то контент и скрипт ps. Измените вопрос, если вам нужны изменения в nuspec. –

Смежные вопросы