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

比如,项目需要引用VS默认安装路径下的某些dll,但不同的开发人员可能把VS安装到不同路径,那么程序员A嵌入后获取最新不一定能编译通过。再假定引用的dll也许只是一两个,... 比如,项目需要引用VS默认安装路径下的某些dll,但不同的开发人员可能把VS安装到不同路径,那么程序员A嵌入后获取最新不一定能编译通过。再假定引用的dll也许只是一两个,但依赖其他没引用的dll有几百M。
你们是如何解决这个问题,请有实践经验的来!
展开
 我来答
Jarhf
推荐于2016-07-25 · TA获得超过1862个赞
知道小有建树答主
回答量:1736
采纳率:25%
帮助的人:1013万
展开全部
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>
wlj2811
2014-12-25 · 超过77用户采纳过TA的回答
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:138万
展开全部
直接在项目文件夹下建一个文件夹,把引用的dll放进去,或者建一个项目,引用dll,原来的项目引用此项目即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tonalilili
2014-12-24 · TA获得超过1.6万个赞
知道大有可为答主
回答量:8050
采纳率:71%
帮助的人:2994万
展开全部

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小妻丐
2014-12-25 · TA获得超过112个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:166万
展开全部
用相对路径呀,不用绝对路径。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式