gru*_*unt 3 .net c# visual-studio-2013
我的解决方案包括几十个项目(比如 proj1 到 proj50),每个项目都引用了一系列完全相同的十几个程序集(比如 asm1 到 12)。这些程序集 (asm1-asm12) 在没有提示路径的情况下被引用。解决方案(包含 proj1-proj50)由另一个组维护,因此不太需要更改它们(我既不是 proj i 也不是 asm i 的所有者,我只想构建解决方案)。
我想做的是将十几个程序集 dll 放在所有项目都可以看到的地方,而无需在每个项目中单独设置路径。换句话说,我想避免为每个解决方案树重复相同的任务 600 次。添加解决方案级别的“解决方案”就可以了(因此我将对单个 sln 执行单个操作),在不更改解决方案的情况下执行此操作会更好(永久执行单个操作)。
在解决方案文件夹中,如果您添加一个名为Directory.Build.propsprops 文件的文件,该文件将被读入并导入到与该 props 文件相同或更低的目录中构建的任何项目中,作为文件中的第一件事(如果您使用Directory.Build.targets它,它将是作为文件中的最后一件事导入)
您可以将项目引用移出 .csproj 并移入该 .props 文件,它们将被导入,就好像它们仍在 .csproj 中一样
下面是一个示例Directory.Build.props,它将导致解决方案中的每个项目都包含该文件lib\ThirdParty.SomeLibrary.dll作为参考。
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Reference Include="ThirdParty.SomeLibrary", Version=10.4.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325, processorArchitecture=MSIL">
<HintPath>$(MSBuildThisFileDirectory)\lib\ThirdParty.SomeLibrary.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
您可以将 Directory.Build.props 文件包含为解决方案级别文件,并且您将能够轻松地从 Visual Studio 内部打开和编辑该文件。