想知道在TFS 2012中构建项目时sln或csproj文件之间是否存在偏好。我们通常在TFS中构建sln文件以支持我们的开发团队,这通常是标准,但是一个团队在问我们为什么不能在TFS中构建csproj文件。
我注意到要构建csproj文件,您必须在 MSBuild Arguments 字段中为TFS构建定义提供参数,并且在构建解决方案文件时不必提供这些参数。除了这个小细节之外,我不确定构建sln与csproj之间的利弊是什么。
有人可以了解一下在TFS中建立sln vs csproj的好处,优点/缺点,是否有通用的做法,标准,还是真的重要?
答案 0 :(得分:3)
只是想知道sln或csproj文件之间是否存在首选项 在TFS 2012中构建项目时。我们通常在中创建sln文件 TFS支持我们的开发团队,这通常是标准,但一个 团队问我们为什么不能在TFS中构建csproj文件。
他们为什么要这样做?在这次调查中是否有某种优势?
我注意到要构建一个csproj文件,你必须提供参数 用于TFS构建定义的MSBuild Arguments字段,但您没有 在构建解决方案文件时必须提供这些参数。所以 除了这个小细节,我不确定它的优点和缺点 建立一个sln与csproj之间。
.sln是一个主项目,在运行时转换为msbuild脚本,并将使用与解决方案中的.csproj项目相同的模式使用元数据文件。
要查看我在说什么,打开命令提示符,键入“SET MSBUILDEMITSOLUTION = 1”,然后键入“msbuild.exe solution.sln”,然后解析新的“solution.metaproj”和“solution.metaproj.tmp” “文件。
有人可以了解一下它的好处和利弊 在TFS中建立一个sln vs csproj,是否有一种常见的做法,a 标准,还是真的重要?
.csproj将是一个项目,而.sln将是项目的集合。构建单个.csproj将产生该项目的输出二进制文件(以及依赖项),构建整个解决方案将产生整个解决方案的输出。
答案 1 :(得分:1)
我有同样的问题。构建时间可能会慢一些,但我自己没有测试过(可能是一个可忽略的差异)。我相信当你使用解决方案文件构建时,它会自动将'BuildInParallel'设置为true。
答案 2 :(得分:0)
我目前正致力于TFS 2012部署构建。根据我的经验,除非确实需要,否则您不必提供MSBuild参数。
让我们看一下以下示例:您有一个包含2个项目的解决方案,
Soln
> Web Proj 1
> Console Proj 2
> Dependency Library Folder
案例1:建立一个sln
一个。在源设置中,您只需提及解决方案文件夹。 MSBuild将自动处理解决方案中的任何依赖项。
湾在过程中 - >要构建的项目,您必须提及您的解决方案文件。
℃。例如,如果您的解决方案有一个Web项目,那么MSBuild输出将如下所示,
\\<build server> \d$\Builds\<Build Name>\<Build File Name>_20141210.6\_PublishedWebsites\<web proj>
案例2:构建csproj
一个。在源设置中,您必须单独提及csproject文件夹以及依赖项文件夹路径。
湾在过程中 - &gt;要构建的项目,你必须提到你的csproject文件。
如果您正在寻找更具体的内容,请告诉我们。