Неуправляемая зависимость не публикуется в приложении хостинга - PullRequest
0 голосов
/ 11 мая 2018

У меня есть автономный сервис WCF, состоящий из консольного приложения, вызывающего библиотеку сервиса WCF, которые являются отдельными проектами в одном решении.Проект сервисной библиотеки зависит от неуправляемой библиотеки DLL, которая копируется в ее выходную папку с помощью следующего тега <Targets> в файле .csproj

 <Target Name="Pesky64BitAPI" AfterTargets="AfterBuild"> 
    <ItemGroup> 
        <UnmanagedDependencies Include="$(MSBuildProjectDirectory)..\Packages\Pesky64BitAPI*.*\lib\net461\*.*"/> 
    </ItemGroup> 
    <Copy SourceFiles="@(UnmanagedDependencies)" DestinationFolder="$(OutputPath)"></Copy> 
 </Target>     

. Это просто прекрасно копирует DLL для тестирования библиотеки.Однако для развертывания dll должна находиться в папке вывода сборки приложения консоли.Код консольного приложения следует на всякий случай:

public class Program
{
    private static void Main(string[] args)
    {       
        try
        {
            var host = OpenHost();

            Console.ReadKey();

            CloseHost(host);
        }
        catch (Exception exception)
        {
            // Omitted for brevity.
        }
    }

    private static void CloseHost(ServiceHost host)
    {
        host.Close();
    }

    private static ServiceHost OpenHost()
    {
        var host = new ServiceHost(typeof(EdnaService));

        // Non-blocking call.
        host.Open();

        return host;
    }
}

Вопрос : есть ли способ изменить цели сборки или что-то еще, чтобы добавить dll к приложению, в котором размещена библиотека сервиса?Или мне нужно продублировать пакет NuGet в консольном приложении, даже если оно ему напрямую не нужно?

1 Ответ

0 голосов
/ 11 мая 2018

Рассматривали ли вы создание события после сборки для копирования библиотеки? Это не самое элегантное решение, но его легко сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...