2015-10-08 3 views
0

Я хочу создать пакет nuget, который содержит помимо DLL-библиотек .NET устаревшие библиотеки (не .NET DLL), на которые ссылаются или доступны библиотеки сборки. Где я могу поместить эти DLL? Как пользователи (exe), использующие мой пакет, получают доступ к этим DLL?nuget пакет с устаревшими DLL

я могу думать только о двух способах, программа пользователей может получить доступ к этой библиотеке DLL: либо есть переменная PATH среды устанавливается в соответствующий каталог или эти библиотеки DLL копируются в бункер/Release и bin/Debug каталогов проекта пользователей.

Как я могу использовать x86 и x64 версии устаревших DLL?

ответ

1

Я бы посмотрел на добавление пользовательского MSBuild .targets к вашему пакету NuGet. Внутри этого файла .targets вы можете определить любые требуемые задачи MSBuild, которые позволят вам подключиться к сборке проекта. Таким образом, вы могли бы скопировать DLL-файлы не.NET в выходной каталог с помощью MSBuild.

Пакет PostSharp NuGet является примером, который копирует дополнительные файлы во время сборки. Однако его файл MSBuild .targets довольно сложный. Вам не нужно было делать что-либо столь же сложное, как это. Вероятно, что-то простое:

<PropertyGroup> 
    <PrepareForRunDependsOn>$(PrepareForRunDependsOn);MyPostBuildTarget</PrepareForRunDependsOn> 
</PropertyGroup> 
<ItemGroup> 
    <ExtraFile Include="dlls\*.dll" /> 
</ItemGroup> 
<Target Name="MyPostBuildTarget"> 
    <Copy SourceFiles="@(ExtraFile)" DestinationFolder="$(OutputPath)" /> 
</Target> 

Вышеупомянутое - это только идея того, что вы могли бы сделать.

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