C# 在TFSBuild.Proj文件中,如何<;ConfigureToBuild>;适用于任何CPU和x86平台?
我有一个MyProject.sln项目 其中有两级图书馆项目和一级窗口服务项目 编译器在任何CPU平台上构建类库项目,以及在X86平台上构建窗口服务项目 我将如何设置,以便根据我在项目“MyProjectClass.csproj”文件中设置的所选平台执行构建 这是TFSBuild.Proj文件的代码C# 在TFSBuild.Proj文件中,如何<;ConfigureToBuild>;适用于任何CPU和x86平台?,c#,msbuild,C#,Msbuild,我有一个MyProject.sln项目 其中有两级图书馆项目和一级窗口服务项目 编译器在任何CPU平台上构建类库项目,以及在X86平台上构建窗口服务项目 我将如何设置,以便根据我在项目“MyProjectClass.csproj”文件中设置的所选平台执行构建 这是TFSBuild.Proj文件的代码 <SolutionToBuild Condition="'$(BuildMyProject)'=='True'" Include="$(SolutionRoot)/MyProj
<SolutionToBuild Condition="'$(BuildMyProject)'=='True'"
Include="$(SolutionRoot)/MyProject/MyProject.sln">
<Targets>Build</Targets>
<Properties></Properties>
</SolutionToBuild>
建造
代码
$BuildFlavor='Release'
<ConfigurationToBuild Include="$(BuildFlavor)|Any CPU">
<FlavorToBuild>$(BuildFlavor)</FlavorToBuild>
<PlatformToBuild>Any CPU</PlatformToBuild>
</ConfigurationToBuild>
<ConfigurationToBuild Include="$(BuildFlavor)|x86">
<FlavorToBuild>$(BuildFlavor)</FlavorToBuild>
<PlatformToBuild>x86</PlatformToBuild>
</ConfigurationToBuild>
$(BuildFlavor)
任何CPU
$(BuildFlavor)
x86
MSBuild尝试为这两个平台生成MyProject.sln。这需要更多的时间来构建。 结果表明,构建运行成功,但未生成指定位置的Windows服务二进制文件 但是, 当我把我的Windows服务项目构建平台从x86改为任何CPU时。现在它工作正常。所有三个项目二进制文件都生成了,我把它放在我的$DropLocation中,但是 [1] 有没有其他方法可以解决这个问题 [2] TFSBuild是否只在一个平台上执行MSBuild编译 [3] 是否要求一个.sln项目的所有子项目平台都相同?修改您的解决方案并将您的配置更改为:
<ConfigurationToBuild Include="$(BuildFlavor)|Mixed Platforms">
<FlavorToBuild>$(BuildFlavor)</FlavorToBuild>
<PlatformToBuild>Mixed Platforms</PlatformToBuild>
</ConfigurationToBuild>
$(BuildFlavor)
混合平台
如果您无权更改解决方案文件,请尝试以下想法:
<ConfigurationToBuild Include="$(BuildFlavor)|Mixed Platforms">
<FlavorToBuild>$(BuildFlavor)</FlavorToBuild>
<PlatformToBuild>Mixed Platforms</PlatformToBuild>
</ConfigurationToBuild>
$(BuildFlavor)
混合平台
如果您无权更改解决方案文件,请尝试以下想法:
我有一个类似的问题-TFSBuild的设置方式总是选择调试配置,我没有更改生成定义的权限。我希望在TFS构建中创建版本配置 我的解决方案是编辑*.csproj文件 此项工作的先决条件是相关TFS生成定义的生成过程参数(要生成的过程/项/要生成的配置)中的配置字段为空。如果您有权对其进行修改,则可以直接选择所需的配置,保存生成定义,并跳过以下解决方法的步骤 解决方法的步骤(右键单击project):
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
调试
任意CPU
并将其更改为
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
释放
任意CPU
最后,再次右键单击项目并选择:
现在将一个新构建排队,它应该从
Release
创建它。同样,您可以输入您喜欢的任何其他配置,例如,您可以在Visual Studio中创建Release\u TFS
,然后插入它而不是Release。这将确保您在执行此操作之前为TFSBuild创建了一个单独的定义。我有一个类似的问题-TFSBuild的设置方式总是选择调试配置,而我没有更改生成定义的权限。我希望在TFS构建中创建版本配置
我的解决方案是编辑*.csproj文件
此项工作的先决条件是相关TFS生成定义的生成过程参数(要生成的过程/项/要生成的配置)中的配置字段为空。如果您有权对其进行修改,则可以直接选择所需的配置,保存生成定义,并跳过以下解决方法的步骤
解决方法的步骤(右键单击project):
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
调试
任意CPU
并将其更改为
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
释放
任意CPU
最后,再次右键单击项目并选择:
现在将一个新构建排队,它应该从
Release
创建它。同样,您可以输入您喜欢的任何其他配置,例如,您可以在Visual Studio中创建Release\u TFS
,然后插入它而不是Release。这将确保您在执行此操作之前为TFSBuild创建了一个单独的定义。使用VisualStudio中的ConfigurationManager,并确保您在解决方案中启用了x86配置下的项目。我没有任何编码权限…只有TFSBuild.proj文件访问权限。所以请描述更多。请给我一些正确的链接,我将从那里开始工作使用VisualStudio中的ConfigurationManager,并确保您已启用项目以在解决方案中的x86配置下生成。我没有任何编码权限…只有TFSBuild.proj文件访问权限。所以请描述更多。给我一些正确的链接,从哪里开始工作我也会遵循它,但同样的事情发生了。我的二进制文件没有生成。我在代码中缺少了一些东西。但这并没有给我正确的输出。我也遵循它,但同样的事情发生了。我的二进制文件并没有生成。我在代码中缺少了一些东西。但这不是给我正确的输出。