繁体   English   中英

如何使Visual Studio正确地将Nuget包中的DLL放置在UWP应用中?

[英]How do I get Visual Studio to properly place DLLs from Nuget Package in UWP apps?

我有一个基于C ++的UWP应用,该应用对Nuget包中的DLL进行了引用。 该应用程序运行良好,但是当我尝试运行该应用程序时,启动失败,错误为0xc0000135(“未找到相关的dll”)。

经过一堆调试后,我发现引用的DLL在Debug目录中,但不在 Debug \\ AppX目录中(需要在其中)。 如果我将DLL手动复制到AppX目录,则该应用程序将启动,但我不想一直这样做。

如何使Visual Studio正确放置此DLL?

如何使Visual Studio正确地将Nuget包中的DLL放置在UWP应用中?

就像VTT所说的那样,您可以使用构建后将DLL文件复制到Debug \\ AppX目录中:

xcopy /Y <PathForDll>\Your.dll $(TargetDir)AppX\

此外,由于此dll来自nuget软件包,因此您可以在.targets文件中添加复制任务,并将此.targets设置到nuget软件包的\\build文件夹中,这样您无需在之后添加post-build事件。安装nuget包(让您感到有些la脚)。

为此,请在.nuspec文件的\\build文件夹中添加.nuspec文件:

<files>  
    <file src="ProjectName.targets" target="build/ProjectName.targets" />  
</files>

.targets文件中添加以下代码:

<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="AfterBuild">
    <ItemGroup>
      <FilesToCopy Include="<PathForDll>\Your.dll"/>
    </ItemGroup>
    <Copy SourceFiles="@(FilesToCopy)" DestinationFolder="$(TargetDir)AppX\"/>
  </Target>
</Project>

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM