我已经设置了一个带有Git存储库的linux盒子(使用xinetd).
我已经为git守护程序启用了receive-pack以启用推送到存储库.
这是我目前的测试工作流程:
mkdir的东西
cd某事
git init --bare
git clone git:// server/repo
(关于克隆空存储库的消息)
对克隆的存储库执行一些提交.
git push
得到这个消息:
Counting objects: 8, done.
Compressing objects: 100% (3/3) done,
Writing objects: 100% (6/6)
Run Code Online (Sandbox Code Playgroud)
这还没完成.我只介绍了一个小改动,所以这应该很快完成.
我在这里做错了吗?
我们正在使用TeamCity作为CI服务器开发应用程序框架+"插件".
CI - 在每次提交时触发.
全部 - 每晚跑步.
我想提高两个版本的性能(尤其是CI版本,因为它需要尽快提供输出).
关于可以有效和轻松改进的内容,是否有任何指导方针?
构建过程只是构建一个.sln文件并运行一些单元测试.
不确定这些是否适用/将导致性能提升.
我正在寻找更多方法来改善构建时间(大约需要3-4分钟).
我知道关于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)
在每次使用时,这将分配一个新的枚举器(和更多的垃圾).
所有类型都这样做吗?如果是这样,为什么?(不能重用一个枚举器吗?)
有没有人在TeamCity中运行StyleCop有什么成功?
我知道StyleCop支持命令行模式,但我不确定它将如何集成到TeamCity的报告输出中.
我已经查看了这个插件:https://bitbucket.org/metaman/teamcitydotnetcontrib/src/753712db5df7/stylecop/
但无法让它运行.
我正在使用TeamCity 6.5.1(最新版).
我的问题是在重构一个只包含要声明为static类的静态方法的类之后,并在启动应用程序时遇到奇怪的问题.
我没有进行任何彻底的调查,但似乎从静态构造函数中进行的某些调用由于某种原因没有完成.
那么,我想知道在C#中使用静态构造函数时有哪些陷阱?更具体地说,是否有任何事情应该不惜一切代价避免,而不是在静态构造函数中使用?
我们正在开发.NET 3.5应用程序(Windows窗体),它由3个主要部分组成.
作为部署过程的一部分,我们希望能够在安装后不断更新组件.
我一直在考虑设置NuGet服务器,并将组件更新打包为NuGet包.
以前有人做过这样的事吗?你认为NuGet适合这份工作吗?
我们的要求是:
我们使用TeamCity进行持续集成和构建我们的产品,我知道它与NuGet很好地集成,可以直接创建/发布NuGet包.
问题是我如何将NuGet与我们的应用程序集成?是否有任何客户端NuGet代码来使用包?我想知道这是否可行.
在对我们的项目和解决方案文件进行一些重构时,我已经分离了一些.sln文件以包含更少的项目.
有时我需要引用当前.sln文件范围之外的一些项目.
例如,我的初始状态是这样的:
解决方案A.
重构后,它看起来像这样:
解决方案A_NEW
解决方案B_NEW
我的问题是 - 是否可以将ProjectReference节点添加到未在同一VS解决方案中定义的项目中?(在我的情况下,让PROJ A有项目参考PROJ B).
另外,如果有可能,那是推荐的吗?
我知道只有手动编辑.csproj文件才能从VS IDE中实现.
.NET垃圾收集器收集对象(回收它们的内存)并执行内存压缩(以将内存碎片保持在最低限度).
我想知道,因为一个应用程序可能有很多对象的引用,当对象的地址由于GC的压缩而改变时,GC(或CLR)如何管理对象的这些引用.
我已经看到一些C#代码声明了一个带有internal修饰符的类,带有一个public构造函数:
internal class SomeClass
{
public SomeClass()
{
}
}
Run Code Online (Sandbox Code Playgroud)
如果整个类的可见性是内部的,那么拥有公共构造函数有什么意义呢?因此只能在定义程序集中看到它?
另外,如果SomeClass是嵌套类,这是否有意义?
我们正在开发一个引用一些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时,构建成功.