Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 在TFS 2010 RC构建期间,如何处理具有相同文件名的两个程序集?_Silverlight_Tfs_Msbuild_Csla - Fatal编程技术网

Silverlight 在TFS 2010 RC构建期间,如何处理具有相同文件名的两个程序集?

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.NET for Silverlight模式,对业务对象程序集使用相同的文件名。例如:

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。大约一年前。现在没有办法测试。