小编lys*_*cid的帖子

Git推迟"编写对象:100%"

我已经设置了一个带有Git存储库的linux盒子(使用xinetd).

我已经为git守护程序启用了receive-pack以启用推送到存储库.

这是我目前的测试工作流程:

  1. 在git服务器上,运行:

mkdir的东西

cd某事

git init --bare

  1. 在客户端框上:

git clone git:// server/repo

(关于克隆空存储库的消息)

  1. 对克隆的存储库执行一些提交.

  2. git push

得到这个消息:

Counting objects: 8, done.
Compressing objects: 100% (3/3) done,
Writing objects: 100% (6/6)
Run Code Online (Sandbox Code Playgroud)

这还没完成.我只介绍了一个小改动,所以这应该很快完成.

我在这里做错了吗?

git

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

改善CI构建时间(.NET)

我们正在使用TeamCity作为CI服务器开发应用程序框架+"插件".

项目细节

  1. 4 Visual Studio解决方案
  2. ~70个项目(增加)
  3. 目前使用TeamCity运行2个构建:CI和FULL构建.

CI - 在每次提交时触发.

全部 - 每晚跑步.

我想提高两个版本的性能(尤其是CI版本,因为它需要尽快提供输出).

关于可以有效和轻松改进的内容,是否有任何指导方针?

构建过程只是构建一个.sln文件并运行一些单元测试.

考虑的方向:

  • MSBuild并行化
  • 覆盖CopyFilesToLocal

不确定这些是否适用/将导致性能提升.

我正在寻找更多方法来改善构建时间(大约需要3-4分钟).

.net c# teamcity continuous-integration build

23
推荐指数
4
解决办法
7608
查看次数

在C#中使用foreach循环时的内存分配

我知道关于foreach循环如何在C#中工作的基础知识(foreach循环如何在C#中工作)

我想知道是否使用foreach分配可能导致垃圾收集的内存?(适用于所有内置的系统类型).

例如,在System.Collections.Generic.List<T>类上使用Reflector ,这里是GetEnumerator的实现:

public Enumerator<T> GetEnumerator()
{
    return new Enumerator<T>((List<T>) this);
}
Run Code Online (Sandbox Code Playgroud)

在每次使用时,这将分配一个新的枚举器(和更多的垃圾).

所有类型都这样做吗?如果是这样,为什么?(不能重用一个枚举器吗?)

.net c# clr foreach loops

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

如何将StyleCop与TeamCity一起使用

有没有人在TeamCity中运行StyleCop有什么成功?

我知道StyleCop支持命令行模式,但我不确定它将如何集成到TeamCity的报告输出中.

我已经查看了这个插件:https://bitbucket.org/metaman/teamcitydotnetcontrib/src/753712db5df7/stylecop/

但无法让它运行.

我正在使用TeamCity 6.5.1(最新版).

teamcity stylecop

19
推荐指数
3
解决办法
1万
查看次数

C#中静态构造函数的潜在缺陷

我的问题是在重构一个只包含要声明为static类的静态方法的类之后,并在启动应用程序时遇到奇怪的问题.

我没有进行任何彻底的调查,但似乎从静态构造函数中进行的某些调用由于某种原因没有完成.

那么,我想知道在C#中使用静态构造函数时有哪些陷阱?更具体地说,是否有任何事情应该不惜一切代价避免,而不是在静态构造函数中使用?

.net c# clr static

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

NuGet作为应用程序更新机制

我们正在开发.NET 3.5应用程序(Windows窗体),它由3个主要部分组成.

作为部署过程的一部分,我们希望能够在安装后不断更新组件.

我一直在考虑设置NuGet服务器,并将组件更新打包为NuGet包.

以前有人做过这样的事吗?你认为NuGet适合这份工作吗?

我们的要求是:

  • 接收打包的DLL文件(但是可能存在包中的其他文件的情况
  • 检测对其他组件(或组件版本)的依赖性
  • 自动检测新组件版本

我们使用TeamCity进行持续集成和构建我们的产品,我知道它与NuGet很好地集成,可以直接创建/发布NuGet包.

问题是我如何将NuGet与我们的应用程序集成?是否有任何客户端NuGet代码来使用包?我想知道这是否可行.

.net c# nuget

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

将ProjectReference添加到不在同一解决方案中的项目

在对我们的项目和解决方案文件进行一些重构时,我已经分离了一些.sln文件以包含更少的项目.

有时我需要引用当前.sln文件范围之外的一些项目.

例如,我的初始状态是这样的:

解决方案A.

  • PROJ A.
  • PROJ B

重构后,它看起来像这样:

解决方案A_NEW

  • PROJ A.

解决方案B_NEW

  • PROJ B

我的问题是 - 是否可以将ProjectReference节点添加到未在同一VS解决方案中定义的项目中?(在我的情况下,让PROJ A有项目参考PROJ B).

另外,如果有可能,那是推荐的吗?

我知道只有手动编辑.csproj文件才能从VS IDE中实现.

.net c# reference visual-studio-2010 visual-studio

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

压缩发生后GC如何更新引用

.NET垃圾收集器收集对象(回收它们的内存)并执行内存压缩(以将内存碎片保持在最低限度).

我想知道,因为一个应用程序可能有很多对象的引用,当对象的地址由于GC的压缩而改变时,GC(或CLR)如何管理对象的这些引用.

.net c# clr garbage-collection

15
推荐指数
3
解决办法
1585
查看次数

内部类的公共构造函数意味着什么

我已经看到一些C#代码声明了一个带有internal修饰符的类,带有一个public构造函数:

internal class SomeClass
{
    public SomeClass()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

如果整个类的可见性是内部的,那么拥有公共构造函数有什么意义呢?因此只能在定义程序集中看到它?

另外,如果SomeClass是嵌套类,这是否有意义?

.net c# visibility internal

14
推荐指数
2
解决办法
6134
查看次数

在构建服务器上注册COM引用的DLL

我们正在开发一个引用一些COM库的C#应用​​程序(例如AutoIT).

我在源控件下包含所有引用的组件,在第三方"Libs"文件夹中.

问题是COM dll在.csproj文件中没有HintPath属性,我认为必须使用regsvr32(或使用某种脚本)手动注册这些属性.

我目前正在寻找创建一个将在每次构建之前运行的MSBuild脚本,但是我无法弄清楚我应该手动调用regsvr32.exe还是使用一些预定义的MSBuild任务?

目前,这是我作为测试所支持的:

 <?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
  <ItemGroup>
    <MyAssemblies Include="D:\*.dll" />
  </ItemGroup>
  <Target Name="Build">
    <RegisterAssembly
      Assemblies="@(MyAssemblies)" >
    </RegisterAssembly>
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

这会生成我在给定文件夹中放置的DLL不是有效DLL的错误.

什么是这个问题的好方法?

编辑:

引用COM dll的项目在.csproj文件中有类似的内容:

<COMReference Include="AutoItX3Lib">
      <Guid>{F8937E53-D444-4E71-9275-35B64210CC3B}</Guid>
      <VersionMajor>1</VersionMajor>
      <VersionMinor>0</VersionMinor>
      <Lcid>0</Lcid>
      <WrapperTool>tlbimp</WrapperTool>
      <Isolated>False</Isolated>
    </COMReference>
Run Code Online (Sandbox Code Playgroud)

这不包括任何提示路径作为其他托管程序集,因此在构建服务器上,找不到引用的COM dll.

使用REGSVR32在构建服务器上注册COM dll时,构建成功.

c# msbuild continuous-integration interop com-interop

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