2017-08-03 145 views
1

我創建了一個nuget包,似乎都沒問題(沒有錯誤信息),當我從包管理器控制檯安裝它時,DLL在XXX/lib/lib中...我不'知道爲什麼有兩個lib文件夾?我試圖改變我的nuspec有幾種解決方案,但我一直有創建nuget包和安裝問題

<package> 
    <metadata> 
    <id>Telerik.Reporting.OpenXmlRendering</id> 
    <version>8.1.14.804</version> 
    <title>Telerik.Reporting.OpenXmlRendering</title> 
    <authors>XXXXX</authors> 
    <owners>XXXXX</owners> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>Assembly XXXX</description> 
    <copyright>Copyright XXXX</copyright> 
    <references></references> 
    <tags></tags> 
    </metadata> 
    <files> 
    <file src="*.dll" target=".\" /> 
    </files> 
</package> 

我試圖在同一文件夾

<file src="*.dll" target="lib\net45" /> 
<file src="*.dll" target="lib\" /> 
<file src="*.dll" target="" /> 

而且安裝始終把DLL中: C:\ XXXXXX \包\ Telerik的.Reporting.OpenXmlRendering.8.1.14.804 \ lib \ lib

你有什麼想法嗎?

感謝

+0

你是如何創建的NuGet包?它被緩存在別的地方嗎?你是否從配置爲包源的本地目錄安裝它?如果您使用NuGet包資源管理器打開它,或將其重命名爲.zip並將其解壓縮,它會是什麼樣子? –

+0

我正在使用VS2015與包管理器控制檯,我創建了一個* .ps1像這樣: – Ben5486

回答

0

@馬特病房 我使用VS2015與程序包管理器控制檯,我創建了一個*的.ps1這樣

:#Generation du package 
nuget pack Package.nuspec 

#Publication du package 
nuget push $NomPackageNuget -Source $urlNuget $apiKey 

我有這些消息:

Successfully created package 'D:\Telerik.Reporting.OpenXmlRendering\Telerik.Reporting.OpenXmlRendering.8.1.14.804.nupkg'. 
Pushing Telerik.Reporting.OpenXmlRendering.8.1.14.804.nupkg to 'http://nuget.xxxx.com'... 
    PUT http://nuget.xxxx.com/api/v2/package/ 
    Created http://nuget.xxx.com/api/v2/package/ 98ms 
Your package was pushed. 

因此,所有似乎都沒問題,但是當我安裝它時,安裝程​​序將dll放在這裏: C:\ DEVELOPPEMENT \ xxxx \ Applis \ packages \ Telerik.Reporting.OpenXmlRenderi ng.8.1.14.804 \ lib \ lib \ x.dll

它可以在我的電腦上運行,但是當我嘗試在另一臺電腦上安裝它時,我有一個錯誤信息,說明我的dll沒有針對net45環境,但是我知道這個DLL是net45,我的計算機上packages.config添加packacge是:

<package id="Telerik.Reporting.OpenXmlRendering" version="8.1.14.804" targetFramework="net45" /> 

錯誤消息

Severity Code Description Project File Line Suppression State 
Error  Could not install package 'Telerik.Reporting.OpenXmlRendering 8.1.14.804'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.5', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author. 

所以,如果你有一個想法,怎麼解決問題的論文這將是很棒:) :)

對於你的評論

它是什麼樣子,如果你用NuGet包資源管理器打開它或重命名爲.zip並解壓縮它?

我必須將zip文件放入什麼位置?我沒有訪問我們的nuget服務器。

感謝您的回答。

+0

NuGet包(.nupkg)基本上是一個zip文件。因此,您可以將其重命名爲.zip並提取內容以查看目錄結構的外觀。 [NuGet包資源管理器](https://github.com/NuGetPackageExplorer/NuGetPackageExplorer)是一個Windows應用程序,可以打開並顯示NuGet包的內容,而無需自己解壓縮。即使您無法訪問NuGet服務器,您也應該能夠從機器的本地緩存中獲取NuGet包:'%UserProfile%\。nuget \ packages'。或者你可以在本地運行nuget pack來生成軟件包。 –