packages.config路径是如何解决的?

时间:2014-03-10 21:07:59

标签: visual-studio xamarin.ios nuget xamarin-studio

我有一个包含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

1 个答案:

答案 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的等效机制是什么,不幸的是我认为它非常相似