I worked around this for now by following an example at https://nuget.codeplex.com/workitem/1644, with some modifications.
I added a check for Website projects because they don't support the 'Add' method.
I added this after the metadata
element in my nuspec
file. (Probably only necessary if not you're using the includereferencedprojects
option available in NuGet 2.5)
<files>
<file src="bin\Release\Foo.Resources.dll" target="lib\net40" />
<file src="bin\Release\Foo.Resources.pdb" target="lib\net40" />
<file src="tools\*" target="tools" />
</files>
And then added these two files to a new tools
folders in my project directory. (Note the fix to the way DLL path is passed to the References.Add
method, compared to the codeplex example)
Install.ps1
param($installPath, $toolsPath, $package, $project)
$resourcesDll = Join-Path $installPath "lib\net40\Foo.Resources.dll"
Write-Host "Adding resources DLL from " $resourcesDll
if ($project.Kind -eq "{E24C65DC-7377-472b-9ABA-BC803B73C61A}") {
$project.Object.References.AddFromFile($resourcesDll)
} else {
$project.Object.References.Add($resourcesDll)
}
Uninstall.ps1
param($installPath, $toolsPath, $package, $project)
Write-Host "Removing Foo.Resources reference"
$project.Object.References | where { $_.Name -eq 'Foo.Resources' } | foreach { $_.Remove() }