C# Visual Studio项目的独立生成系统 我们使用编译编译我们的产品,包括C、C++、java和一堆其他的零碎东西。我们尽可能地拥有所有必要的工具来编译整个检查到源代码控制中的内容,以消除本地依赖性,并确保开发人员机器之间的一致性

C# Visual Studio项目的独立生成系统 我们使用编译编译我们的产品,包括C、C++、java和一堆其他的零碎东西。我们尽可能地拥有所有必要的工具来编译整个检查到源代码控制中的内容,以消除本地依赖性,并确保开发人员机器之间的一致性,c#,visual-studio,C#,Visual Studio,最近,我们使用Visual Studio添加了一些用C#编写的组件,并希望采用与Visual Studio解决方案类似的方法。向devenv抛售不是一个好的选择。直接调用csc.exe(正如我在使用之前所做的那样)需要跟踪构建脚本中的文件依赖项,我宁愿让VisualStudio解决方案来完成 这似乎是一个不错的选择,尽管它在%windir%\Microsoft.NET\Framework\[version]\中的默认位置让我担心机器之间的可变性,既有路径中的[version],也有“Framew

最近,我们使用Visual Studio添加了一些用C#编写的组件,并希望采用与Visual Studio解决方案类似的方法。向
devenv
抛售不是一个好的选择。直接调用
csc.exe
(正如我在使用之前所做的那样)需要跟踪构建脚本中的文件依赖项,我宁愿让VisualStudio解决方案来完成

这似乎是一个不错的选择,尽管它在
%windir%\Microsoft.NET\Framework\[version]\
中的默认位置让我担心机器之间的可变性,既有路径中的[version],也有“Framework64”目录。我不介意要求所有开发人员安装任何.NETFramework版本,但我确实担心您的v3.5可能与我的不同


有人有他们喜欢的解决方案吗?尝试过任何你确实不喜欢的东西吗?

MSBuild肯定是摩擦最小的选项。不同的fx版本在构建时并没有什么大不了的-如果您使用的是高于所安装版本的fx版本的重要内容,那么它将无法构建。在我最后一次访问的地方,我们以NAnt为基础构建了一个庞大的多环境构建系统,它通过NAnt的MSBuild任务连接到MSBuild。如果您只是在做MS工作,那么MSBuild本身就可以了,但是我们有一大堆MSBuild本机不支持的东西,因此NAnt包装器。

MSBuild是此作业的合适工具。只需将您的框架版本与您正在使用的VisualStudio捆绑的框架版本相匹配


32位和64位应该没关系,我不认为——我很确定
Csc.exe的32位和64位版本都可以交叉编译到其他平台。MSBuild项目文件(*proj XML文件)应包含生成应用程序所需的所有内容。

我同意其他人的看法。为了简单起见,只需将
vsvars.bat
(作为Visual Studio命令提示符的批处理文件)作为生成脚本的一部分,然后MSBuild就可以工作了。

我们使用Nant来驱动MSBuild。如果您担心框架的不同版本,特别是服务包,请使用FxCop检查您是否没有让意外的依赖性悄悄进入。详情见。

谢谢大家的回答。-什么是“外汇版本”?