Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未发布到托管应用的非托管依赖项_C#_Wcf_Unmanaged - Fatal编程技术网

C# 未发布到托管应用的非托管依赖项

C# 未发布到托管应用的非托管依赖项,c#,wcf,unmanaged,C#,Wcf,Unmanaged,我有一个自托管WCF服务,由一个调用WCF服务库的控制台应用程序组成,它们是同一解决方案中的独立项目。服务库项目依赖于非托管dll,该dll使用.csproj文件中的以下标记复制到其输出文件夹中 <Target Name="Pesky64BitAPI" AfterTargets="AfterBuild"> <ItemGroup> <UnmanagedDependencies Include="$(MSBuildProjectDirect

我有一个自托管WCF服务,由一个调用WCF服务库的控制台应用程序组成,它们是同一解决方案中的独立项目。服务库项目依赖于非托管dll,该dll使用
.csproj
文件中的以下
标记复制到其输出文件夹中

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

问题:是否有办法更改构建目标或其他方法,以将dll添加到托管服务库的应用程序中?或者,我是否必须在控制台应用程序中复制NuGet包,即使它不直接需要它

您是否考虑过创建生成后事件来复制库?这不是最优雅的解决方案,但它很简单。

您能提供一个简单的例子吗?另外,我想要一个尽可能通用的解决方案。例如,我可能最终会在IIS中托管,并希望解决方案考虑托管服务库的任何应用程序。如果这种方法不存在,我想我也需要知道。
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;
    }
}