[英]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.