小编Mr.*_*Mr.的帖子

C#,TeamCity - 避免在TeamCity服务器上发布后期构建事件

我有许多项目,我已经在我的开发环境中输出到DLL的中央存储库.这是通过将XCopy命令添加到项目的Post-build事件命令行来实现的.

XCOPY $(TargetDir)$(TargetFileName) C:\DEV\library /I /R /Y
Run Code Online (Sandbox Code Playgroud)

我希望这在开发模式下发生,但是当在TeamCity服务器上时,我想避免执行脚本.这样做的最佳方式是什么?我将搜索谷歌和文档,但希望其他人以类似的方式使用TeamCity,并可以建议如何实现.

谢谢.

编辑:

XCopy应该将dll复制到一个中央文件夹(C:\ DEV\library),依赖于它们的外围项目可以访问它.事实上,我已经从项目中删除了xcopy,因为我觉得它更像是一个黑客而不是帮助它使用它.感觉就像我正在把一个方形钉子压成一个圆孔.

c# teamcity projects-and-solutions visual-studio-2010

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

创建日期和File.Copy问题

我正在尝试将文件从一个目录复制到另一个目录,并根据文件创建日期进行测试.

File.Copy(fileName, directory + fileNameOnly, true);
Run Code Online (Sandbox Code Playgroud)

当我检查创建日期以确保它不超过5天时,我的程序中会出现此问题.

FileInfo file = new FileInfo(fileName);
if (file.CreationTime.AddHours(120) < DateTime.Now) {}
Run Code Online (Sandbox Code Playgroud)

我已经看到复制后的创建日期设置为1980-01-01.这对我的要求没有用,因为我希望从原始文件维护创建日期.是否有另一种比较日期的方法,或者是丢失创建日期值的副本.

我想我的问题是,我怎样才能保持创作日期?

.net c# file-io

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

C#数据层和Dto

我最近加入了一家使用类型化数据集作为'Dto'的公司.我认为它们真的很垃圾,并希望将它改成更现代和用户友好的东西.所以,我正在尝试更新代码,以便数据层更通用,即使用接口等,另一个人不知道Dto是什么,我们对如何完成它有轻微的分歧.

如果不试图让人们思考我的思维方式,我想向你们提供关于Dto可以存在的层次的公正答案.DAL,BL和Presentation或仅在这些图层中设置一个小子集.

此外,是否应该或不应该在DAL中存在IList对象.

谢谢.

c# architecture data-access-layer

5
推荐指数
1
解决办法
3555
查看次数

使用"Ticked method names"时,是否可以参数化NUnit测试用例显示名称?

我正在测试F#并使用NUnit作为我的测试库; 我发现使用双后退标记允许任意方法命名使我的方法名称更具人性化.

我想知道,无论是正确还是错误,如果可以在使用NUnit TestCaseAttribute更改方法名称时参数化方法名称,例如:

[<TestCase("1", 1)>]
[<TestCase("2", 2)>]
let ``Should return #expected when "#input" is supplied`` input expected =
    ...
Run Code Online (Sandbox Code Playgroud)

f# nunit

4
推荐指数
1
解决办法
431
查看次数

这个C#代码如何解决问题?

我已经解决了项目欧拉问题16,但发现了这种相当新颖的方法,但我无法理解所采用的技术(来自http://www.mathblog.dk/project-euler-16/):

int result = 0;

BigInteger number = BigInteger.Pow(2, 1000);

while (number > 0) {
    result += (int) (number % 10);
    number /= 10;
}
Run Code Online (Sandbox Code Playgroud)

我的版本似乎更传统,但我认为上述方法更酷.

var result = BigInteger
    .Pow(2, 1000)
    .ToString()
    .Aggregate(0, (total, next) => total + (int) Char.GetNumericValue(next));
Run Code Online (Sandbox Code Playgroud)

数学如何在第一种方法上运作,这很酷,但我需要一些解释来帮助我理解,所以如果有人能够如此友善地向我解释,我会非常感激.

注意:如果我在错误的部分发布,请告诉我更好的地方.

c# math

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

与返回值的方法相比,void方法最基本的更快/更少的开销吗?

我无法在SO或互联网上找到类似的问题/答案,并且这个问题可能无用,这可能是我在MSIL上阅读时遇到的一个问题.我非常好奇理解IL操作执行在我的场景中是如何工作的,即使这不是一个我没有其他人要问的实际问题.

前提:

请记住,MSIL命令和函数的执行分三步完成:

  1. 将命令操作数或函数参数压入堆栈.
  2. 执行MSIL命令或调用函数.命令或函数从堆栈中弹出它们的操作数(参数)并推送到堆栈结果(返回值).
  3. 从堆栈中读取结果.

步骤1和3是可选的.例如,void函数不会将返回值推送到堆栈.

我知道这是一种方法确定需要多少"处理能力"的方法,但为了我的好奇心,我们可以考虑这两个非常基本的方法:

第一种方法:

void Method1()
{
  var result = 1+1;
}
Run Code Online (Sandbox Code Playgroud)

第二种方法:

int Method2()
{
  var result = 1+1;
  return result;
}
Run Code Online (Sandbox Code Playgroud)

题:

因为void方法不会推送返回值(或者是否存在隐式返回)这是否意味着在执行时需要较少的开销而不是第二种方法?

.net c# il cil

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

如何围绕私有方法编写单元测试

我正在尝试对具有公共和私有方法的类进行单元测试,并且我想对已设置为私有的特定方法(基础上的受保护抽象)进行单元测试.我不能使方法公开,我不想通过完整的过程来测试这个方法,我只关心这个方法的输入参数和返回满足期望.

这个问题强调我不想公开这个方法:

公开私有方法对其进行单元测试......好主意?

我的问题是,测试私有方法的各种方法有哪些,我应该采用哪种技术?为什么?

我已经阅读了这个问题(你如何对私人方法进行单元测试?)但是想知道接受的答案是否仍然是最好的答案,或者在几年后有更好的方法.

如果这个问题被认为是重复的,你如何对私有方法进行单元测试?我会在那里添加我的评论并要求更新,请指教.

.net c# nunit unit-testing nsubstitute

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

如何从F#中的文本文件中仅提取单词?

我试图只从文本文件中提取非常简单的单词:

Please note that you still have an unclaimed iPhone 7. 

We have repeatedly written to you regarding your delivery details. We do not understand why you have not yet confirmed your shipping information so we can send it to your home address. 

Your special price for the brand new  iPhone 7 phone is only £3 with shipping. 

We hope that you'll confirm your information this time. 
Run Code Online (Sandbox Code Playgroud)

我一直在使用这个函数,但似乎它抛出一个异常("方法拆分没有重载匹配"):

let wordSplit (text:string) = 
  text.Split([|' ','\n','\t',',','.','/','\\','|',':',';'|])
  |> Array.toList
Run Code Online (Sandbox Code Playgroud)

string f# text

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