如何通过powershell更改项目引用上的CopyToOutputDirectory

时间:2015-05-13 21:17:42

标签: c# powershell nuget

我创建了一个包含第三方程序集的nuget包,因此我不必将它们放在我想要引用它们的每个repo中的lib文件夹中。第三方库的本质是我不能将它们的引用设置为复制到输出目录(它会导致使用其部署脚本完成错误)。

为了解决这个问题,我想我可以在我的nuget包中创建一个install.ps1脚本,并将CopyToOutputDirectory属性更改为Never。我无法在网上找到任何这方面的例子。我找到的唯一样本与ProjectItems集合中存在的内容文件有关(例如Nuget - Setting CopyToOutputDirectory on content in subfolders)。

我尝试根据其他一些谷歌搜索对此进行修改,并提出了这种方法来获取参考资料

param($installPath, $toolsPath, $package, $project) 

$configItem = $project.Object.References | Where-Object { $_.Name -eq 'ReferencedDll' }

现在$ configItem确实保留了引用,我已经通过执行Write-Host $ configItem.Name验证了这一点,但我无法弄清楚如何在此时更改CopyToOutputDirectory或在对象上找到任何MS文档参考模型。任何人都可以帮助我指出正确的方向吗?

1 个答案:

答案 0 :(得分:0)

我意识到我正在混合CopyLocal和CopyToOutputDirectory。解决方法是在设置$ configItem之后执行此操作,如上所述:

$configItem.CopyLocal = $false