Silverlight 4,RIA Services和TFS 2010 Build Server

Car*_*arl 7 msbuild silverlight ria

我有一个Visual Studio 2010解决方案文件,其中包含许多项目.有许多Silverlight项目(充当模块),Silverlight Shell项目和许多RIA服务.

使用TFS 2010执行构建时,它总是会失败,因为RIA服务生成的代理类尚未首先构建.到目前为止,我看到的唯一解决方案是手动更改.sln文件中的构建顺序.不,谢谢,有很多项目.

我不想将解决方案分解为客户端和服务器端解决方案,而是希望找到更好的解决方案.

显然,MSBuild 4忽略了.sln文件中的构建顺序.

有没有人有任何想法/建议?

谢谢,

Val*_*ean 9

我发现最简单的方法是明确声明Silverlight项目与托管RIA服务的项目之间的依赖关系.

您必须在文本编辑器中打开Silverlight项目文件并向其中添加片段:

<ItemGroup>
  <ProjectReference Include="..\Path\Your.Hosting.Project\Your.Hosting.Project.csproj">
    <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
  </ProjectReference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

这将告诉msbuild在构建Silverlight应用程序之前构建您的Web服务.它只有在使用msbuild构建时才会起作用,VS会抛出错误.

要在Visual Studio中构建它,您必须将此片段包装在Target中并将其添加到Project节点中的InitialTargets:

<Target Name="MySpecialReferences">
  <ItemGroup>
    <ProjectReference Include="..\Path\Your.Hosting.Project\Your.Hosting.Project.csproj">
      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
    </ProjectReference>
  </ItemGroup>
</Target>

<Project ... InitialTargets="MySpecialReferences" ... >
Run Code Online (Sandbox Code Playgroud)

Visual Studio 2010现在将跳过此目标,但msbuild将用于更改项目的构建顺序.


Jed*_*dja 1

这绝对不是“正确”的解决方案,但作为临时选项,签入Generated_Code\*.g.csSilverlight 项目中存在的 RIA 服务的生成文件怎么样?如果人们检查最新版本及其类的匹配更新DomainService,那么所有内容都应该按预期构建。