如何免费编写,编译和运行C#(在Windows中)

Pet*_*ter 9 c# ide deployment

可以免费使用C#吗?你会用哪些工具?

  1. 为了好玩/学习:我很确定你可以,但仍然存在工具问题.
  2. 对于您想要出售的节目?

我正在寻找的工具:

  1. IDE(尽可能完整:调试,重构,库,IntelliSense等) - 如果它不包含在IDE中,则编译器.
  2. 单元测试,
  3. 记录(使用JavaDoc提取注释),
  4. 部署.

其他有关免费工具的建议也欢迎.

请注意,IMO,Visual Studio Express不提供所有这些工具.

Joz*_*zso 18

集成开发环境:

独立编译器:

  • csc.exe,vbc.exe和msbuild.exe是.NET Framework的一部分.Windows SDK工具也是免费的.或者您可以使用Mono项目中的编译器.

单元测试:

  • NUnit,mbUnit,xUnit以及许多其他人.

记录:(提取注释JavaDoc风格)

  • GhostDoc - 不适用于Express Edition

部署:

  • GhostDoc创建注释,它不会提取它们.Sandcastle可以提取文档评论. (2认同)

Bev*_*van 9

虽然OP说:

Visual Studio Express不提供所声明的所有这些工具!

什么不是C#Express提供你想要的?

严肃的部署,单元测试,记录

然而,IMO你可以用Visual Studio Express做到这一点.

部署

Visual Studio Express肯定缺少Visual Studio部署项目,但坦率地说,这并不是一个遗漏.整个功能是一半烘焙,足以勾勒出一个功能列表,足以支持玩具部署,但可以说,并不是真正适应现实世界的严峻考验.

Windows Installer XML(WiX)是Microsoft的一个开源工具包,用于创建安装程序.据报道,Microsoft Office 2007的安装程序是使用WiX构建的,因此有理由相信它可以处理任何小型案例.

另一个安装工具是Nullsoft Scriptable Install System,它可能比WiX更容易理解,但也不能与Windows内置的MSI技术一起使用,因此在Enterprise案例中难以管理.

单元测试

微软的测试框架是MSTest,虽然它取决于任务,但它不是该组件的领导者.事实上,如果你四处寻找对MSTest的反应,你会发现许多人认为这是对NUnit的反击.

曾经有一段时间你可以使用Test Driven.Net将任何测试工具集成到Visual Studio Express中,尽管它不再有效.

什么的工作是使用外部程序亚军为您的单元测试工具-所有主要的单元测试框架来与他们.当我自己使用VS Express时,我倾向于让测试跑者在后台闲逛; 重新运行测试然后只涉及任务切换.

NUnit是.NET测试框架的祖先,它运行良好.还有其他一些,例如mbUnitxUnit.

文档

没有版本的Visual Studio有一个很好的文档故事.实际上,它们都有相同的故事 - 编译器切换到基于文档注释生成XML文件.

要将这些XML文件转换为真实的文档,您需要其他工具.NDoc曾经是标准,但不幸的是,这个项目已经死了(这是一个非常悲伤的故事).Sandcastle(另一个Microsoft开源项目)可能会成为新的黄金标准,但该工具还不像我们想的那样成熟且易于使用.DocU是该领域的新版本,可能值得关注.

结论

正如您所看到的,即使使用Visual Studio Express,也有很好的方法可以实现您想要的目标.事实上,升级到付费版Visual Studio只会有两件事.

  1. 如果你需要,你会得到MSTest.
  2. 您将能够安装TestDriven.NET和Resharper等扩展/插件.

对于有人入门,我认为价值主张并不存在.从有免费工具开始,如果你有足够的经验可以花钱,就可以花钱.


Nil*_*han 5

  1. IDE(尽可能完整,调试,重构,库,intellisense,...)
    => Sharpdevelop(#develop)是.Net的开源IDE,支持多种语言.
  2. 如果不在IDE中,编译器
    =>如Jozef所述
  3. 单元测试
    => Sharpdevelop,内置NUnit
  4. 记录(提取评论,例如,参见javadoc)
    => Sharpdevelop,SandCastleSHFB集成
  5. 部署
    => Sharpdevelop,WIX集成.

查看SharpDevelop功能的 Shardevelop的所有功能

它可以自由创建程序并出售.为了好玩,你可以在其中开发更多功能:)