创建的nuget包的dll无法从包加载的项目中访问

时间:2017-03-29 17:53:07

标签: c# .net visual-studio-2015 nuget-package nuget-spec

我想创建一个我的.net核心类库的nuget包。

  1. 我将nuget.exe文件复制到我的解决方案的根文件夹
  2. 运行nuget spec并创建Solution.nuspec文件。我将其修改如下:

    <?xml version="1.0"?>
    <package >
    <metadata>
    <id>Solution</id>
    <version>1.0.0</version>
    <authors>cc Team</authors>
    <owners>cc</owners>
    <licenseUrl></licenseUrl>
    <projectUrl></projectUrl>
    <iconUrl></iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description></description>
    <releaseNotes></releaseNotes>
    <copyright>Copyright 2017</copyright>
    <tags>c# .net</tags>
    <dependencies>
        <dependency id="NETStandard.Library" version="1.6.1" />
    </dependencies>
    <references>
        <reference file="Solution.dll" />
    </references>
    </metadata>
    <files>
    <file src="Solution.dll" target="lib\netstandard1.6\Solution.dll"/>
    

       
       

  3. 文件的节点src值我的解决方案的outpupath。 (BIN \发布\ netstandard1.6 \ Solution.dll)

    1. 运行nuget pack Solution.nuspec和创建的Solution.nupkg文件。
    2. 我把它放到我的包裹来源。
    3. 创建一个新的.net核心类库,并从本地包源中选择我的解决方案nuget包。它添加到我的项目中。没有错误或警告。但是当我尝试从我的解决方案nuget包中访问一个类时,它无法找到。我已经下载了“Nuget Package Explorer”#39;并打开我的Solution.nupkg。我可以在lib下看到Solution.dll和Solution.pdb文件 - &gt; netstandart1.6。
    4. 然后我搜索了错误,发现了这个:

      "scripts": {
      "postcompile": [
        "dotnet pack --no-build --configuration %compile:Configuration%"
      ]
      }
      

      编译我的Solution项目后,它会创建Solution.1.0.0-0.nupkg文件和Solution.1.0.0-0.symbols。我把它放到我的本地包源,但这些包没有在Nuget包管理器中列出&#39;。

      你有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我的经验是从解决方案创建包有时糟糕。从项目文件创建包可以解决问题。

答案 1 :(得分:0)

清理&#39; C:\ Users \ XXX.nuget \ packages \ Solution&#39;文件夹和添加包再次修复我的问题。

因为我之前尝试过格式化的badget包。