如何与多个开发人员一起处理项目中的文件系统内引用
本文关键字:项目 处理 文件系统 引用 一起 开发 | 更新日期: 2023-09-27 18:00:14
我们有一个项目,它引用了每个开发机器上不同目录中的库。每次使用新的开发机器时,我们都需要在多个项目中手动重新添加某些库,我们希望在问题变得更大之前解决这个问题。
目前,手动重新添加引用会导致每台开发机器都向.csproj文件添加自己的HintPath,这会导致.csproi文件看起来像这样:
<Reference Include="Microsoft.CodeAnalysis.EditorFeatures.Text, Version=0.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..'..'..'..'..'AppData'Local'Microsoft'VisualStudio'12.0'Extensions'ml2dtxdz.42m'Microsoft.CodeAnalysis.EditorFeatures.Text.dll</HintPath>
<Private>True</Private>
<HintPath>..'..'..'..'..'AppData'Local'Microsoft'VisualStudio'12.0'Extensions'tpvugvu1.kcm'Microsoft.CodeAnalysis.EditorFeatures.Text.dll</HintPath>
<HintPath>..'..'..'..'..'AppData'Local'Microsoft'VisualStudio'12.0'Extensions'wcunwe5f.4dt'Microsoft.CodeAnalysis.EditorFeatures.Text.dll</HintPath>
</Reference>
其想法是将这些库复制到相对于解决方案的目录中,这样.csproj就简化为:
<Reference Include="Microsoft.CodeAnalysis.EditorFeatures.Text, Version=0.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..'packages_extra'VisualStudio12.0'Microsoft.CodeAnalysis.CSharp.dll</HintPath>
<Private>True</Private>
</Reference>
这将引用的库移到我们的源代码管理中,简化了.csproj文件,并消除了在每个新的开发机器上重新添加引用的过程。到目前为止,这种方法非常有效。
我的问题:我们有什么理由不这样做吗?有没有更好的方法来解决这个问题?
让我们假设所有开发人员都有相同的操作系统、相同版本的Visual Studio和相同的CPU体系结构
这个问题类似于在一个带有源代码管理的Visual Studio项目上与多个开发人员发生的未回答的冲突
我们还尝试在项目属性中设置每个用户引用路径,但Visual Studio似乎从未接受过这些提示。
1)完全有效。我曾在多个项目中使用与解决方案相关的文件夹中的第三部分部件。只要每次从源代码管理中删除文件夹,它就应该是一种享受。如果这超出了你的解决方案,不要忘记让人们在"得到"时知道这一点,这样他们就不会错过。
2) 在更大的组织中,一个更关键质量的替代方案可能是使用您自己的Nuget服务器,如ProGet。
对我来说,将所有需要的引用上传到CVS并配置项目以引用它们的方法总是很有效。
由于这一点,整个解决方案可以在初始签出后进行编译。这大大减少了新开发人员或新机器的安装时间。此外,管理这些引用也很容易——如果您的提交需要某个组件的新版本,那么这个提交也将是独立的。更新后,对系统其他部分的其他开发人员来说,更改将是透明的。
在大型项目中,尽量减少对基础设施的担忧可以节省大量时间。