我有一个C#解决方案包含很多项目。每个项目都引用指定文件夹中的一些dll。根据MSDN,我们可以在项目中添加项目的参考路径 - >属性 - >参考路径。它将在项目文件夹下生成一个.csproj.user文件,其中包含以下内容:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ReferencePath>C:\References\bin\</ReferencePath>
</PropertyGroup>
</Project>
但这仅适用于一个项目。是否有一种简单的方法可以将相同的设置应用于解决方案中的所有项目?
答案 0 :(得分:4)
我找到了blog post解释如何执行此操作。
打开包管理器控制台(例如,查看|其他Windows |包管理器控制台),并使用以下脚本作为相对路径:
$path = [System.IO.Path]; foreach ($proj in get-project -all) {$proj.Properties.Item("ReferencePath").Value="$($path::GetDirectoryName($proj.filename))\..\libs"}
或者对于所有项目的单个固定项目参考:
foreach ($proj in get-project -all) {$proj.Properties.Item("ReferencePath").Value=C:\lib"}
答案 1 :(得分:0)
我不相信,可能是因为可以将项目加载到许多解决方案中,并且如果所需库的参考路径成为解决方案的范围,您最终会遇到构建错误或不同的行为,具体取决于如果解决方案告诉项目在不同的地方查找依赖项,那么您构建项目的解决方案。