如何为dll文件名不同于程序集名称的程序集正确定义NuGet程序包?

时间:2019-03-20 21:51:06

标签: nuget

我不得不将Newtonsoft.Json的便携式版本打包为内部NuGet软件包,并使用其他名称(Newtonsoft.SL5.Json)。原因是我们正在建立共享的bin目录,并且我不希望Silverlight版本覆盖完整的.NET版本。 (是的,我们仍然有Silverlight,是的,对于我们拥有的非Silverlight代码,便携式Json.Net版本还不够好。)

  • 程序包文件名为Newtonsoft.SL5.Json.8.0.1.19229.nupkg
  • 里面有Newtonsoft.SL5.Json.nuspec
  • 里面有lib \ sl5 \ Newtonsoft.SL5.Json.dll

nuspec文件的内容为:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>Newtonsoft.SL5.Json</id>
    <version>8.0.1.19229</version>
    <authors>Newtonsoft</authors>
    <owners>Newtonsoft</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Json.NET Portable .NET 4.0</description>
    <copyright>Copyright © James Newton-King 2008</copyright>
  </metadata>
</package>

现在我做错了,因为结果是,在Visual Studio中添加依赖项时,它生成的引用是:

<Reference Include="Newtonsoft.SL5.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
  <HintPath>..\..\packages\Newtonsoft.SL5.Json.8.0.1.19229\lib\sl5\Newtonsoft.SL5.Json.dll</HintPath>
  <Private>True</Private>
</Reference>

当然,没有这样的程序集Newtonsoft.SL5.Json。应该是Newtonsoft.Json

所以,我做错了。如何更改NuGet程序包,使其使用正确的程序集名称,即Newtonsoft.Json?因为即使我更改了文件名,程序集名称仍然相同。

1 个答案:

答案 0 :(得分:0)

在添加参考IDE时会获取包(lib / {platform} /)中包含的.dll文件。如果您重命名添加并打包在nupkg文件中的那些文件->应该将这些文件添加到元素中。