0

我刚刚为我的一个开源项目创建了一个 NuGet 包,它包含一个 Windows Phone 7 二进制文件。我刚刚对其进行了测试,它没有添加特定于 Windows Phone 7 的库,而是添加了 Silverlight 库。

我的问题是,如何设置我的文件夹体系结构,以便 NuGet 包管理器识别我的 WP7 特定二进制文件并安装它们而不是 Silverlight 二进制文件?

我按照此处列出的说明针对 NuGet 包中的多个框架进行了操作。

这是我的文件夹树目前的样子:

\lib
    \.NetFramework 4.0
        \MyAssembly.dll
    \Silverlight 4.0
        \MyAssembly.Silverlight.dll
    \Windows Phone 7
        \MyAssembly.Mobile.dll

我应该做些什么不同的事情?

4

2 回答 2

3

由于没有配置文件支持(文件夹中不支持框架名称的配置文件部分),我们本身还不支持 wp7。有关更多详细信息,请参阅此问题http://nuget.codeplex.com/workitem/219

FWIW:Windows phone 7 是 Silverlight 4,Profile=Windows Phone。

现在你必须为 wp7 创建另一个包。

于 2011-01-22T08:54:18.920 回答
0

看起来这个问题已经用nuget的最新版本(1.1)修复了。您可以通过以下测试(直接取自 Nuget 单元测试)来验证这一点:

[TestMethod]
public void ParseFrameworkNameWithWPProfileGetNormalizedToWindowsPhone() {
    // Act
    var frameworkName = VersionUtility.ParseFrameworkName("sl4-wp");

    // Assert
    Assert.AreEqual("Silverlight", frameworkName.Identifier);
    Assert.AreEqual(new Version("4.0"), frameworkName.Version);
    Assert.AreEqual("WindowsPhone", frameworkName.Profile);
}
于 2011-02-15T04:41:38.740 回答