C# Windows Phone的MSBuild中的自定义设置

C# Windows Phone的MSBuild中的自定义设置,c#,properties,jenkins,msbuild,windows-phone,C#,Properties,Jenkins,Msbuild,Windows Phone,我有一个Jenkins服务器,它为我执行MSBuild。 有一大堆构建需要完成,它们都使用相同的解决方案文件,但是对于每个构建,一些自定义设置需要更改 应用程序需要能够读取这些设置 例如,如果我像这样构建: msbuild MyProject.sln /p:MyVar=SomeValue $(MyVar) 然后,当应用程序启动时,它应该能够检索MyVar的值。 例如,当应用程序以标题“SomeValue”开头时,它应该能够显示messagebox 我知道我可以定义Microsoft描述的属

我有一个Jenkins服务器,它为我执行MSBuild。 有一大堆构建需要完成,它们都使用相同的解决方案文件,但是对于每个构建,一些自定义设置需要更改

应用程序需要能够读取这些设置

例如,如果我像这样构建:

 msbuild MyProject.sln /p:MyVar=SomeValue
$(MyVar)
然后,当应用程序启动时,它应该能够检索MyVar的值。 例如,当应用程序以标题“SomeValue”开头时,它应该能够显示messagebox

我知道我可以定义Microsoft描述的属性,但我不知道在应用程序启动时如何读取这些属性。 或者我只是在寻找一种完全错误的方法


有什么想法吗?

您需要使用msbuild创建一个包含值的文本文件。为此,可以在MSBuild文件中使用MSBuild.Community.Tasks.Target的
TemplateFile
任务

CreateAppVarFile.targets
文件:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <MSBuildCommunityTasksPath>$(SolutionDir)\.build</MSBuildCommunityTasksPath>
  </PropertyGroup>
  <Import Project="$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.Targets" />

  <Target Name="CreateAppVarFile">
    <ItemGroup>
      <TemplateContext Include="MyVar">
        <ReplacementValue>$(MyVar)</ReplacementValue>
      </TemplateContext>
    </ItemGroup>
    <TemplateFile Template="$(MSBuildThisFileDirectory)appvar.txt" OutputFilename="$(ProjectDir)appvar.txt" Tokens="@(TemplateContext)"/>
  </Target>
</Project>
并在运行时从应用程序中读取。不要忘记在项目中包含appvar.txt。它将包括:

SomeValue

嘿,谢谢你。我已按照您告诉我的方式设置了项目,但我收到了以下错误:“F:\BuildApp\BuildApp.csproj”(默认目标)(1)->(检查InvalidConfigurationAndPlatform目标)->C:\Program Files(x86)\MSBuild\12.0\bin\MSBuild.ExtensionPack.tasks(3,5):错误MSB4068:该元素无法识别,或者在此上下文中不受支持。[F:\BuildApp\BuildApp.csproj]
SomeValue