Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从.NET framework 4.0创建Nuget包_C#_.net - Fatal编程技术网

C# 从.NET framework 4.0创建Nuget包

C# 从.NET framework 4.0创建Nuget包,c#,.net,C#,.net,我正试图从类库中创建面向.NETFramework 4.0的nuget包 所以 我下载nuget.exe 打开cmd控制台 在根目录中创建lib文件夹 构建项目并将dll从root/bin/Release复制到root/lib/net4文件夹 使用nuget spec CRM\u Mailer.csproj 文件夹结构: - root -- lib -- net4 -- CRM_Mailer.dll -- Crypto

我正试图从类库中创建面向.NETFramework 4.0的nuget包

所以

  • 我下载
    nuget.exe
  • 打开cmd控制台
  • 在根目录中创建lib文件夹
  • 构建项目并将dll从
    root/bin/Release
    复制到
    root/lib/net4
    文件夹
  • 使用
    nuget spec CRM\u Mailer.csproj
  • 文件夹结构:

    - root
       -- lib
         -- net4
            -- CRM_Mailer.dll               
            -- Cryptography.dll  
            -- DataConnector.dll  
            -- CRM_Mailer.csproj
    
    nuget pack CRM_Mailer.nuspec
    
  • 填写我的CRM\u Mailer.nuspec

     <package>
         <metadata>
             <id>CRM_Mailer</id>
             <version>0.0.2</version>
             <title>Test1</title>
             <authors>testUser</authors>
             <owners>testUser</owners>
             <!-- <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl> -->
             <!-- <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl> -->
             <!-- <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl> -->
             <requireLicenseAcceptance>false</requireLicenseAcceptance>
             <description>hope it's work</description>
             <releaseNotes>Realy hope</releaseNotes>
             <copyright>Copyright 2020</copyright>
             <tags>Win32</tags>
             <references>
                 <reference file="CRM_Mailer.dll" />  
                 <reference file="Cryptography.dll" />      
                 <reference file="DataConnector.dll" />
             </references>
         </metadata>
     </package>
    
    
    邮递员
    0.0.2
    测试1
    测试用户
    测试用户
    假的
    希望是工作
    真正的希望
    版权所有2020
    Win32
    
  • 使用
    nuget pack CRM\u Mailer.nuspec
    并获取以下警告:

    警告:NU5100:程序集“bin\Release\CRM\u Mailer.dll”不在“lib”文件夹中,因此在将程序包安装到项目中时,不会将其添加为引用。如果需要引用,请将其移动到“lib”文件夹中。
    警告:NU5100:程序集“bin\Release\Cryptography.dll”不在“lib”文件夹中,因此在将程序包安装到项目中时,不会将其添加为引用。如果需要引用,请将其移动到“lib”文件夹中。
    警告:NU5100:程序集“bin\Release\DataConnector.dll”不在“lib”文件夹中,因此在将程序包安装到项目中时,不会将其添加为引用。如果需要引用,请将其移动到“lib”文件夹中。
    警告:NU5100:程序集“obj\Debug\CRM\u Mailer.dll”不在“lib”文件夹中,因此在将程序包安装到项目中时,不会将其添加为引用。如果需要引用,请将其移动到“lib”文件夹中。
    警告:NU5100:程序集“obj\Release\CRM\u Mailer.dll”不在“lib”文件夹中,因此在将程序包安装到项目中时,不会将其添加为引用。如果需要引用,请将其移动到“lib”文件夹中

  • nuget add CRM\u Mailer.0.0.3.nupkg-源代码C:\GIT\NugetPackages\NugetPackageCreator\Package

  • 程序包正在运行

  • 问题是:

    • 为什么我会在第7步中收到警告?如何取消警告
    • 为什么等级库不从assembly.info复制信息

    通过nuget下载的程序集应位于“Lib”文件夹中(如警告所示,而不是根文件夹中)。若要修复此问题,请将部件复制到子文件夹“lib”中,并将等级库文件更改为指向部件:


    根据您的文件结构,解决方案很简单


    只需在执行
    nuget-pack
    命令之前删除'obj'和'bin'文件夹

    dll位于lib文件夹中,如我在步骤3中所述