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

时间:2014-05-22 19:12:02

标签: c# .net 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>

当我检查生成的nupkg文件时,内部文件结构显示正确。 C ++ DLL位于content中,.NET DLL位于lib中。

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

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

<references>
  <reference file="MyPackageNET.dll" />
</references>

我做错了吗?我已经生成了其他的nuspec&amp; varoius .csproj文件中的nupkg文件,可以正确地添加对已安装项目的引用。有什么关于我错过的个别DLL的包装是否保留了参考项目的添加?

在相关的说明中,如果我无法自动添加引用,任何人都可以指引我使用任何可以解释$ project.Object.Reference.Add方法的语法的资源,或者哪些资源可以帮助我以编程方式添加引用DLL到我的项目?

1 个答案:

答案 0 :(得分:2)

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