2016-10-04 57 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文件改變輸出目錄,當我改變了它回到它開始正確