2016-10-04 55 views
0

我试图使用DOTNET包在Visual Studio中我的项目发布到NuGet包2015年我project.json如下:DOTNET包不包括建立文物

{ 
    "version": "1.0.6.6-*", 
    "buildOptions": { 
    "emitEntryPoint": true 
    }, 

    "dependencies": { 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1", 
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.1", 
    "NETStandard.Library": "1.6.0", 
    "Microsoft.EntityFrameworkCore.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.Extensions.Configuration": "1.0.0" 
    }, 

    "frameworks": { 
    "net451": {}, 
    "netcoreapp1.0": { 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.0-*" 
     } 
     }, 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    }, 
    "tools": { 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "BundlerMinifier.Core": "2.0.238", 
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
    }, 

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

dotnet pack...包了我的项目作为postbuild事件放入nuget包中,并将其放入由环境目录Builds定义的目录中(显然,我想--no-build在那里,否则我会进入一个无限循环)。

问题是,当我解压包时,它不包含dll。

我试过删除obj文件夹(我相信nuget暂时存储工件),删除输出等,我无法得到包含dll的包。

我曾经工作过,没有任何改变,所以我不明白为什么现在不工作。

+0

创建包在你的依赖看,如果你正在建设一个库或应用程序目前尚不清楚。让两个代码输出一个包含“netcoreapp1.0”文件夹和.dll文件的包,以及包含“lib”文件夹内的.exe文件的“net451”文件夹。 你能澄清你正在建立什么样的文件夹和文件夹吗? – Ignas

+0

我试图建立一个图书馆。据我所知,你需要添加一些东西来伪造一个应用程序,以便使dotnet核心数据库脚手架正常工作。 它看起来像你说得对,虽然我的输出目录中有一个bin文件夹,它具有你所描述的内容,但是该包本身只包含一个'_rels'文件夹,里面有一个'.rels'文件,一个'[Content_Types] .xml'和一个nuspec文件,它缺少dll。但是我可以在输出目录中看到dll。 –

+0

我不知道为什么dotnet包不适合你,但作为解决方法(临时?)我可以建议将nuget.exe包括到解决方案和nuspec文件中,并手动调用nuget.exe包。您可以指定必须包含在nuspec文件中的什么位置。 – Ignas

回答

0

事实证明,这是因为我在xproj文件改变输出目录,当我改变了它回到它开始正确