小编Fad*_*oof的帖子

什么时候copy-local应该设置为true,什么时候不应该?

我想知道什么时候设置copy-local=true引用有任何启发式方法?

如果引用类型只在内部使用我可以设置copy-localtrue,但如果被引用类型暴露作为参数和返回值我设置copy-localfalse和指示时,应使用我的媒体库的依赖特定版本应参照?

谁能为我澄清一下这个?

.net msbuild reference copy-local

69
推荐指数
5
解决办法
6万
查看次数

Copy-local如何工作?log4net.dll未被复制到MyProject输出目录

我想知道copy-local = true对于引用究竟是什么.它是否将引用的程序集及其所有依赖项复制到输出目录?

我的方案如下:我有一个使用log4net的自定义日志包装器.我构建了MyLogWrapper.dll的发布程序集,其中log4net.dll引用设置为copy-local true.从复制本地设置为true的MyProject引用MyLogWrapper.dll会导致log4net.dll被复制吗?我只引用MyLogWrapper.dll,而不是MyProject中的任何依赖项.log4net.dll没有被复制到MyProject输出目录,但MyLogWrapper的所有其他依赖项都是.可能是什么问题呢?

我做了一些实验,似乎如果我从GAC中删除程序集(log4net.dll),它就会开始在本地复制.任何人都可以确认这是问题吗?

.net dependencies build

45
推荐指数
5
解决办法
2万
查看次数

我应该如何正确摆脱TFS分支?

我想知道我应该如何正确摆脱不再有任何目的的分支机构.现在,即使我删除它们并提交它们仍然在特定分支根(目录)的属性窗口中列为分支.如果我选择合并,我没有选择合并到已删除的分支,这显然是预期的,但因此我很困惑仍然出现在属性窗口中的分支.

任何有关此行为的解释将不胜感激.

tfs branch

33
推荐指数
2
解决办法
1万
查看次数

未复制到输出目录的引用的依赖项

我有一个我已经内置到一个dll中的CommonUtils lib,我从我的几个项目中引用了它.CommonUtils依赖于log4net.dll,当构建CommonUtils.dll时,log4net.dll被设置为文件引用,copy-local = true.log4net.dll和CommonUtils.dll不在GAC中.

在MyWorkingProject中一切正常,我只有一个对CommonUtils.dll的文件引用 - log4net.dll显示在输出目录中(因为它是CommonUtils.dll的依赖项,但未从MyWorkingProject引用).但是,如果我创建一个新项目来添加一些单元测试:MyWorkingProjectTest和项目引用MyWorkingProject然后在这里再次引用文件引用CommonUtils.dll(我想使用一些CommonUtils)然后构建log4net.dll,这是项目中的一个依赖项引用和文件引用也不会被复制到输出目录.

谁能澄清这里发生了什么?编译器不知道它应该抓取哪个log4net.dll文件?我在这里做错了吗?我应该以其他方式执行此操作以明确复制log4net.dll吗?是否有必要明确引用log4net呢?

.net dependencies reference visual-studio

18
推荐指数
1
解决办法
7210
查看次数

将装配版本号与TFS Buildnumber对齐

我想知道是否有一种方法来同步构建号码(20080213.1)而不使用BuildNumberOverrideTarget,我将不得不生成自己的内部版本号?我基本上想要使用默认/内置tfs buildnumber生成器,但想要访问它以使我的程序集版本与它对齐.可以这样做,这是一种明智的方式吗?

versioning msbuild tfs

13
推荐指数
2
解决办法
1万
查看次数

如何访问已退出审核/检查某些更改的员工的TFS工作区?

我的一位同事已经辞职,并在将所有代码签入TFS之前离开了办公场所.我可以访问物理文件.有没有办法让我访问他的工作区并检查一些仍未选中的更改?从tfs我可以看到他检查了哪些文件,但除非非常手动,否则无法看到确切的更改.

workspace tfs

10
推荐指数
2
解决办法
5877
查看次数

如何使用tfs api列出团队项目的文件?

我想知道是否有办法列出tfs团队项目中包含的所有"文件".我的目标是搜索由分支引起的TFS内没有固定路径的特定名称的文件($/MyTeamProject/Main/Build/instruction.xml和$/MyTeamProject/Branches/Release_1.0).一旦找到文件,我想操纵它.

我想我们正在谈论在团队项目中包含的实体而不是传统文件中的项目,因此这可能有点棘手?

我看过一些用于操作文件的示例,但到目前为止所有样本都有固定路径.

c# api tfs

10
推荐指数
2
解决办法
2万
查看次数

合并装配的最佳实践?

我想知道在创建要包含在与依赖关系相关的其他项目中的库的版本时是什么启发式,以及我是否应该包含它们.

我的问题如下:

我有一个CommonUtilities库,它提供了一组可以在多个地方使用的实用程序.CommonUtilities的依赖包括log4net.dll(日志框架)和Oracle.DataAccess.dll(数据库驱动程序).

我有另一个名为MyProject的项目,我希望将CommonUtilities包含在内.MyProject还依赖于Oracle.DataAccess.

如果我使用ILMerge并将CommonUtilities合并到单个程序集CommonUtilities.dll中并引用来自MyProject的所有内容进行编译,但我确信我应该从MyProject明确引用Oracle.DataAccess,因为它是依赖项而不是使用合并到CU的程序集.添加对Oracle.DataAccess的引用也会导致使用不明确的语句,因为引用了两个Oracle.DataAccess程序集.

在我的情况下使用ILMerge/Internalize会导致编译错误,因为内部化Oracle.DataAccess程序集中的类型是从CommonUtilities返回的,因为它们被标记为内部MyProject无法识别返回的类型.

使这项工作的唯一方法就是不将这个特定的程序集(Oracle.DataAccess)合并到CommonUtilities中,而只是从MyProject引用它.这反过来又会产生一个新问题:我应该引用哪个Oracle.DataAccess.dll - 与CommonUtils一起分发的依赖关系?

还有其他方法可以解决这一切吗?

.net ilmerge assemblies

9
推荐指数
1
解决办法
3649
查看次数

我应该在同一个项目中混合我的UnitTests和我的Integration测试吗?

我正在使用NUnit来测试我的C#代码,并且到目前为止已将单元测试(快速运行的)和集成测试(更长时间运行)分开,并且在单独的项目文件中.我使用NUnit进行单元测试和集成测试.我刚刚注意到NUnit提供的category属性,因此可以对测试进行分类.这引出了一个问题,我应该将它们混合在一起并简单地使用category属性来区分它们吗?

integration-testing nunit unit-testing

9
推荐指数
2
解决办法
786
查看次数

在单元测试中使用模拟时如何避免重复代码

我正在使用依赖注入为我所测试的类之外的代码提供模拟.我发现自己一遍又一遍地编写了大量相同的代码,因为我需要模拟我想要测试的方法中使用的AuthProvider,ConfigurationManager等.该方法包含分支(if-then-else),因此我有多个测试来测试该方法的所有执行路径.我几次实例化每个模拟(每个测试方法一次),但我想知道这是否是错误的方法?此外,我提出了对模拟和预设响应的期望,显然主要是复制粘贴,因为在每个方法中调用AuthProvider.Authenticate()等调用

在每个方法中,我设置了一个模拟存储库,在每个方法的最后,我验证了模拟存储库.我是否应该有一些工厂来创建这些模拟并设置他们的期望和返回值,如果是这样的话?

为了实现模拟,我正在使用RhinoMocks.

unit-testing dependency-injection rhino-mocks mocking

8
推荐指数
1
解决办法
1646
查看次数