请教C#/.net高手,用VS结合源码管理团队协作开发,如何处理引用的dll在不同机器路径不一样的问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教C#/.net高手,用VS结合源码管理团队协作开发,如何处理引用的dll在不同机器路径不一样的问题?相关的知识,希望对你有一定的参考价值。

比如,项目需要引用VS默认安装路径下的某些dll,但不同的开发人员可能把VS安装到不同路径,那么程序员A嵌入后获取最新不一定能编译通过。再假定引用的dll也许只是一两个,但依赖其他没引用的dll有几百M。
你们是如何解决这个问题,请有实践经验的来!

1. 从引用弹出窗->程序集中引用的.Net框架自带的库,都不会有问题。
2. 引用第三方库,一般是浏览文件的形式选中dll,这时你应该在项目文件夹中专门建一个文件夹来存放dll,然后再引用这个文件夹中的dll,如下面的Lib文件夹,这样vs会自动使用相对目录引用。 
3. 使用nuget插件管理引用,比较方便,它其实也是在项目文件夹中新建了一个packages目录存放下载的dll。
4. 如果项目中不引用,直接放到bin目录下也可以,不过一般bin目录不会纳入版本管理的范围。
 <ItemGroup>
    <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\\packages\\EntityFramework.6.1.1\\lib\\net45\\EntityFramework.dll</HintPath>
    </Reference>
    <Reference Include="EntityFramework.SqlServer">
      <HintPath>..\\packages\\EntityFramework.6.1.1\\lib\\net45\\EntityFramework.SqlServer.dll</HintPath>
    </Reference>
    <Reference Include="log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\\Lib\\log4net.dll</HintPath>
    </Reference>
    <Reference Include="MongoDB.Bson, Version=1.3.1.4349, Culture=neutral, PublicKeyToken=f686731cfb9cc103, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\\Lib\\MongoDB.Bson.dll</HintPath>
    </Reference>
    <Reference Include="MongoDB.Driver, Version=1.3.1.4349, Culture=neutral, PublicKeyToken=f686731cfb9cc103, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\\Lib\\MongoDB.Driver.dll</HintPath>
    </Reference>
    <Reference Include="Newtonsoft.Json">
      <HintPath>..\\Lib\\Newtonsoft.Json.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.ComponentModel.DataAnnotations" />
    <Reference Include="System.Data" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.ServiceModel" />
    <Reference Include="System.Web" />
    <Reference Include="System.Web.ApplicationServices" />
    <Reference Include="System.Web.DynamicData" />
    <Reference Include="System.Web.Entity" />
    <Reference Include="System.Web.Extensions" />
    <Reference Include="System.Web.Extensions.Design" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.EnterpriseServices" />
    <Reference Include="System.Web.Mobile" />
    <Reference Include="System.Xml.Linq" />
  </ItemGroup>

参考技术A 直接在项目文件夹下建一个文件夹,把引用的dll放进去,或者建一个项目,引用dll,原来的项目引用此项目即可 参考技术B

不安装到指定目录者,一律开除?

参考技术C 用相对路径呀,不用绝对路径。

以上是关于请教C#/.net高手,用VS结合源码管理团队协作开发,如何处理引用的dll在不同机器路径不一样的问题?的主要内容,如果未能解决你的问题,请参考以下文章

请教C#/WPF高手,类似点击头像出来相关tooltip菜单的功能是怎么实现的?

请教dos命令中的 net 详细用法

请高手帮忙---asp.net 如何添加,修改,删除记录

请教c语言中打印变量的大小被警告是为啥(VS2019/Debug/x64)?

请教SQL Server 高手

网站上传后出现打开¥¥¥¥/admin,就会显示admin下的所有文件,请教高手如何解决此类问题?