我们有一个半复杂的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文件,但我们还没有为此分配时间。
答案 0 :(得分:1)
我最终采用的解决方案是修改Web应用程序.csproj以便行
<SilverlightApplicationList>...</SilverlightApplicationList>
以下列条件为条件
<SilverlightApplicationList Condition="'$(SilverlightApplicationList)' == ''">...</SilverlightApplicationList>
然后在项目的构建定义中,在Process - &gt;下我添加的MSBuild参数
/p:SilverlightApplicationList=" "
所以现在开发人员可以在本地构建,构建过程可以在没有Silverlight项目的情况下构建Web应用程序。