我有一个Visual Studio 2010解决方案文件,其中包含许多项目.有许多Silverlight项目(充当模块),Silverlight Shell项目和许多RIA服务.
使用TFS 2010执行构建时,它总是会失败,因为RIA服务生成的代理类尚未首先构建.到目前为止,我看到的唯一解决方案是手动更改.sln文件中的构建顺序.不,谢谢,有很多项目.
我不想将解决方案分解为客户端和服务器端解决方案,而是希望找到更好的解决方案.
显然,MSBuild 4忽略.sln文件中的构建顺序.
有没有人有任何想法/建议?
谢谢,
解决方法
我发现最简单的方法是明确声明Silverlight项目与托管RIA服务的项目之间的依赖关系.
您必须在文本编辑器中打开Silverlight项目文件并向其添加片段:
<ItemGroup> <ProjectReference Include="..\Path\Your.Hosting.Project\Your.Hosting.Project.csproj"> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> </ProjectReference> </ItemGroup>
这将告诉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" ... >
Visual Studio 2010现在将跳过此目标,但msbuild将用于更改项目的构建顺序.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。