编译没有Silverlight项目引用的Web应用程序

时间:2011-06-03 14:43:42

标签: visual-studio-2010 silverlight-4.0 tfs msbuild

我们有一个半复杂的Visual Studio解决方案,它具有Silverlight 4前端,用于业务实体的CSLA 4.1,以及使用CSLA WCF数据门户。由于使用CSLA进行整个线路的序列化,我们必须拥有Silverlight business assemblies the same name as our server side business assemblies。由于程序集名称冲突而在尝试构建Web应用程序时出现问题。在开发人员的盒子上编译工作正常,因为Visual Studio正在做它自己的魔力以避免解决方案级别的冲突,但是在构建服务器上为Web应用程序和Silverlight项目分别构建由于Web应用程序引用Silverlight而导致问题.csproj中的项目。因此,当我们让TFS对Web应用程序执行构建时,它将尝试编译Silver项目并更新XAP。我们将其作为单独的构建完成,因此我们不关心它。

是否可以使用Silverlight引用构建在开发人员的计算机上设置.csproj构建Web应用程序,但是在构建服务器上忽略它们?理想情况下,它不会依赖于我们自己的自定义MSBuild属性在TFS中的构建中抛出。作为最后的手段,我们可以停止依赖.csproj构建脚本并创建我们自己的MSBuild文件,但我们还没有为此分配时间。

1 个答案:

答案 0 :(得分:1)

我最终采用的解决方案是修改Web应用程序.csproj以便行

<SilverlightApplicationList>...</SilverlightApplicationList>

以下列条件为条件

<SilverlightApplicationList Condition="'$(SilverlightApplicationList)' == ''">...</SilverlightApplicationList>

然后在项目的构建定义中,在Process - &gt;下我添加的MSBuild参数

/p:SilverlightApplicationList=" "

所以现在开发人员可以在本地构建,构建过程可以在没有Silverlight项目的情况下构建Web应用程序。