Silverlight 在TFS 2010 RC构建期间,如何处理具有相同文件名的两个程序集?
我遵循CSLA.NET for Silverlight模式,对业务对象程序集使用相同的文件名。例如:Silverlight 在TFS 2010 RC构建期间,如何处理具有相同文件名的两个程序集?,silverlight,tfs,msbuild,csla,Silverlight,Tfs,Msbuild,Csla,我遵循CSLA.NET for Silverlight模式,对业务对象程序集使用相同的文件名。例如: CSLA.dll // .NET assembly MyProject.Entities.dll // .NET assembly CSLA.dll // Silverlight assembly MyProject.Entities.dll // Silverlight assembly 这样,您就可以在.NET项目中使用单个代码文件,
CSLA.dll // .NET assembly
MyProject.Entities.dll // .NET assembly
CSLA.dll // Silverlight assembly
MyProject.Entities.dll // Silverlight assembly
这样,您就可以在.NET项目中使用单个代码文件,“文件链接”它到Silverlight项目,并让两个程序集使用相同的代码(根据需要编译.NET和Silverlight的功能)
使用相同程序集文件名的原因是,WCF序列化绑定只是自动工作
我遇到的问题是,我的生成服务器似乎将两个程序集放在同一个输出目录(生成服务器上的Binaries文件夹)中,并使用该目录解析项目引用,但它得到了错误的文件(Silverlight文件而不是.NET文件)
有人知道如何处理这种情况吗
编辑:
我正在运行TFS 2010 Beta2,而不是2010 RC1,Build Agent 2010 RC1我过去使用的一种策略是对两个项目使用相同的源目录,并将平台特定的文件嵌套在离散命名的子目录中,对输出(例如bin\debug\clr和bin\debug\sl)使用相同的源目录。这需要对项目文件进行一些手动编辑,但似乎效果良好。我不记得构建服务器有任何问题。但我可能弄错了。我过去使用的一种策略是对两个项目使用相同的源目录,并将平台特定的文件嵌套在离散命名的子目录中,对输出(例如bin\debug\clr和bin\debug\sl)使用相同的源目录。这需要对项目文件进行一些手动编辑,但似乎效果良好。我不记得构建服务器有任何问题。但是我可能弄错了。Aaron Hallberg向我提到,您可以将工作流中的MSBuild活动更改为不设置
OutDir
。这起作用了,但导致Binaries文件夹无法获取输出的副本
相反,我在解决方案中做了三个构建配置,ClrOnly
,SilverlightOnly
,和WebsiteOnly
。然后在构建定义的流程选项卡中,我将项目设置为build to build“1个项目和3个配置”
”。现在二进制文件输出如下所示:
Nightly_20100217.1\
\Multi Platform\
\ClrOnly
\SilverlightOnly
\WebsiteOnly\
\_Published Sites
我的单元测试和一切都很好
编辑:
另一方面,发布的网站无效,因为它在生成和发布时拾取了错误的引用。Aaron Hallberg向我提到,您可以将工作流中的MSBuild活动更改为不设置
OutDir
。这起作用了,但导致Binaries文件夹无法获取输出的副本
相反,我在解决方案中做了三个构建配置,ClrOnly
,SilverlightOnly
,和WebsiteOnly
。然后在构建定义的流程选项卡中,我将项目设置为build to build“1个项目和3个配置”
”。现在二进制文件输出如下所示:
Nightly_20100217.1\
\Multi Platform\
\ClrOnly
\SilverlightOnly
\WebsiteOnly\
\_Published Sites
我的单元测试和一切都很好
编辑:
另一方面,发布的网站无效,因为它在构建和发布时拾取了错误的引用。您运行的是什么TFS/VS版本?它是08。大约一年前。现在无法测试。您正在运行什么TFS/VS版本?它是08。大约一年前。现在没有办法测试。