NuGet包无法为lib目录中的DLL添加对项目的引用

Vic*_*son 17 .net c# dll nuget

我正在尝试打包引用C++ DLL的.NET DLL.nuspec文件如下所示:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>MyPackage</id>
    <version>1.0.0</version>
    <authors>some author</authors>
    <owners>some owner</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>.NET Wrapper for rebuilt 64-bit version of MyPackage</description>
    <copyright>Copyright 2014</copyright>
  </metadata>
  <files>
    <file src="x64\MyPackage64.dll" target="content" />
    <file src="MyPackageNET.dll" target="lib" />
  </files>
</package>
Run Code Online (Sandbox Code Playgroud)

当我检查生成的nupkg文件时,内部文件结构显示正确.C++ DLL所在,content.NET DLL就在lib.

当我将nupkg安装到项目中时,内容DLL将添加到项目根目录中,并且lib DLL将添加到解决方案packages目录中.

但是,没有向项目添加引用.我被迫手动添加引用.我尝试将以下节点添加到元数据,但无济于事:

<references>
  <reference file="MyPackageNET.dll" />
</references>
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?我已经从varoius .csproj文件生成了其他nuspec和nupkg文件,这些文件正确地添加了对已经安装它们的项目的引用.有什么关于我错过的个别DLL的包装是否保留了参考项目的添加?

在一个相关的说明,如果我不能自动添加引用,任何人都可以指导我任何资源,这将解释$ project.Object.Reference.Add方法的语法,或者它将帮助我以编程方式添加对DLL的引用我的项目?

小智 2

我遇到了同样的问题,并且出现了无法卸载软件包的其他症状。我遵循Can't uninstall/reinstall NuGet package的指导,并将packages.config 文件添加到项目中。我必须从解决方案文件夹中复制该文件,因为我的项目还没有该文件。这样做可以纠正这两种症状。