我正在尝试准备一个用于定位x64 Win8商店应用的NuGet包。要求是使用Visual Studio 2013,它支持到目前为止(据我所知)NuGet 2.8.6。 所以我有一个像这样的.nuspec文件:
<files>
<file src="lib\netcore45\wwapi.dll" target="lib\netcore45\wwapi.dll" />
<file src="lib\netcore45\wwapi.winmd" target="lib\netcore45\wwapi.winmd" />
<file src="lib\portable-wpa81\wwapi.dll" target="lib\portable-wpa81\wwapi.dll" />
<file src="lib\portable-wpa81\wwapi.winmd" target="lib\portable-wpa81\wwapi.winmd" />
<file src="runtimes\win8-x64\native\wwapi.dll" target="runtimes\win8-x64\native\wwapi.dll" />
<file src="runtimes\win8-x64\native\wwapi.winmd" target="runtimes\win8-x64\native\wwapi.winmd" />
</files>
我使用References
这样的元素:
<references>
<group targetFramework=".NETCore4.5">
<reference file="wwapi.winmd" />
</group>
<group targetFramework="portable-wpa81">
<reference file="wwapi.winmd" />
</group>
</references>
然而,位于runtimes
文件夹下的库不会添加到我正在使用的x64目标项目中,因此它不会构建。有没有办法使用以下配置实现此目的:
我知道使用PowerShell脚本或为x86和x64使用不同的软件包,但我正在寻找类似于NuGet 3.0和Win10 UAP的解决方案。
答案 0 :(得分:1)
使用build文件夹为W8自动选择库的x86 / x64版本。这在VS2013中受支持,因为在Nuget 2.5中添加了(参见Nuget 2.5 release notes:自动导入msbuild目标和道具文件)
基本上,解决方案包括在build / .targets中添加一个文件,其中包含对正确dll的引用。