2017-08-03 143 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来生成软件包。 –