我有一个包含packages.config文件的项目。我有一个相应的库。当我尝试在Visual Studio中构建我的解决方案时,它确实找到了库,一切正常。但我的Mac上的Xamarin Studio无法找到相同的库。
对我来说,部分问题是我不明白“packages”文件的内容如何与路径对应。这显然不是直接的对应关系。
这是packages.config文件。相关的包裹是“splat”。
编辑:答案显然是我需要重新启动计算机。也就是说,了解它如何选择路径仍然很有趣。
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="6.0.1" targetFramework="portable-net45+wp80+win+MonoAndroid10+MonoTouch10" />
<package id="Splat" version="1.2.1" targetFramework="portable-net45+win+MonoAndroid10+MonoTouch10" />
</packages>
这是我在finder中的packages目录:
WJ-macbook:packages william$ ls -RF
./Splat.1.2.1:
Splat.1.2.1.nupkg lib/
./Splat.1.2.1/lib:
MonoMac/ monoandroid/
Net45/ monotouch/
NetCore45/ wp8/
Portable-Net45+WinRT45+WP8/
./Splat.1.2.1/lib/MonoMac:
Splat.dll Splat.dll.mdb
./Splat.1.2.1/lib/Net45:
Splat.dll Splat.pdb
./Splat.1.2.1/lib/NetCore45:
Splat.dll Splat.pdb Splat.pri
./Splat.1.2.1/lib/Portable-Net45+WinRT45+WP8:
Splat.dll Splat.dll.mdb
./Splat.1.2.1/lib/monoandroid:
Splat.dll Splat.dll.mdb
./Splat.1.2.1/lib/monotouch:
Splat.dll Splat.dll.mdb
./Splat.1.2.1/lib/wp8:
Splat.dll Splat.pdb
答案 0 :(得分:1)
在Windows上,NuGet安装过程实际上会修改相关的项目文件,以包含软件包的提示路径。这是直接从我的一个项目中获取的一行
<Reference Include="EditorUtils, Version=1.3.0.0, Culture=neutral, PublicKeyToken=3d1514c4742e0252, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\packages\EditorUtils.1.3.0.0\lib\net40\EditorUtils.dll</HintPath>
</Reference>
此处HintPath
是MsBuild发现EditorUtils引用的方法。这是在安装过程中由NuGet添加的。
我不知道xamarin的等效机制是什么,不幸的是我认为它非常相似