我想尝试打包一个引用了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>
我做错了什么吗?我已经从各种 .csproj 文件中生成了其他 nuspec 和 nupkg 文件,它们可以正确地添加到安装了它们的项目中。是我错过了关于单个 DLL 打包的某些内容,导致无法在项目中添加引用吗?
另外,如果我无法自动添加引用,是否有人可以指导我查找任何资源,以解释 $project.Object.Reference.Add 方法的语法,或者帮助我以编程方式向我的项目添加 DLL 引用?