Nuget project.Object.References美元.安装PS-script时添加失败



我有我的nuget包,我们叫它一个依赖于另一个公共包Nunit的。跑步者

当A依赖于n单位时。运行器它没有添加我需要的程序集到我的项目中,我依赖的程序集在NUnit.Runners.2.6.3toolslib所以,因为nuget只添加对lib中的程序集的引用,我认为我需要添加一个Install。我的nuget包

现在有

param($installPath, $toolsPath, $package, $project)
$NunitRunners = join-path -path $packagesFolder -childpath "NUnit.Runners.2.6.3"
$project.Object.References.Add($NunitRunners+"nunit.core")
$project.Object.References.Add($NunitRunners+"nunit.core.interfaces")

但是它抛出

 Exception calling "Add" with "1" argument(s): "Unspecified error
 (Exception from HRESULT: 0x80004005 (E_FAIL))" At
 + $project.Object.References.Add <<<< ($NunitRunners+"nunit.core.dll")
     + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
     + FullyQualifiedErrorId : ComMethodTargetInvocation

关于为什么这是抛出"添加"超级欢迎的任何指针

我的安装。Ps1(此处供参考)

param($installPath, $toolsPath, $package, $project)
write-host "Install path" $installPath
$packagesFolder = Split-Path -Path $installPath -Parent
write-host "packages folder" $packagesFolder
write-host $toolsPath
write-host $package
$NunitRunners = join-path -path $packagesFolder -childpath "NUnit.Runners.2.6.3"
write-host $NunitRunners
$project.Object.References.Add($NunitRunners+"nunit.core")
$project.Object.References.Add($NunitRunners+"nunit.core.interfaces")

顺便说一下,我只需要引用这两个程序集,不需要引用nunit。framework

注意:我确实在codeplex中看到了这个线程,但没有任何解决方案(即项目不是客户端配置文件,程序集不应该在GAC上)

NUnit.Core.dll和NUnit.Core.Interfaces.dll的路径不正确。

当前$NunitRunners在指向packagesNUnit.Runners.2.6.3toolslib时指向了packagesNUnit.Runners.2.6.3

所以你可以改变$NunitRunners的路径,或者在你添加引用的时候添加它:

 $project.Object.References.Add($NunitRunners+"toolslibnunit.core.dll")
 $project.Object.References.Add($NunitRunners+"toolslibnunit.core.interfaces.dll")

所以你已经尝试指定了NUnit。在你的nuspec文件中运行2.6.3依赖,它不工作?你有没有尝试指定NUnit核心作为一个依赖?

<dependencies>
  <dependency id="NUnit" version="2.6.3" />
  <dependency id="NUnit.Runners" version="2.6.3" />
</dependencies>

如果这不起作用,您还可以尝试在文件部分中包含NUnit dll,并将它们包含在包A中,但这并不理想。

最新更新