0

以下问题:我们在 TFS 2012 中使用门控构建。一旦 TFS 开始构建,所有内容都会被复制到一个文件夹中。

  • 我们的实际应用程序是 Silverlight 应用程序。
  • 我们的单元测试虽然放在 .Net 项目中

我们应用程序的一部分使用了第 3 方控件。它使用 Silverlight 程序集,该程序集授予特定功能。.Net 程序集提供了相同的功能,我们在并行项目中使用该程序集进行服务器端内容和单元测试。它实际上授予相同的功能(除了 UI 的东西)。这两个程序集都用“copy local = true”引用。

如果我在本地构建解决方案(其中包含不同项目中引用的两个程序集),一切正常。但是一旦我尝试通过 TFS 部署它,构建就会因为FileIOException或其他原因而失败。它告诉我第 3 方大会不是正确的文件。

我认为发生了这种情况,因为当 TFS 开始构建时,所有内容都会被复制到一个文件夹中。两者:.Net 程序集和 Silverlight 程序集。它们都具有相同的文件名。我认为这就是搞砸 TFS 构建的原因。

你对这个问题有什么建议吗?要求我们仍然拥有包含所有项目的“超级解决方案”。因此,拆分 .Net 和 Silverlight 项目并不是一个解决方案。

4

1 回答 1

1

这可能是由于当您通过 TFS 或某些非 IDE 构建器构建时,您在某处指定了输出目录,因此它只是在一个地方整理所有程序集,从而导致问题。

您可以将后缀附加到您的 silverlight 项目程序集,这只会使程序集输出为“YourAssembly.silverlight.dll”而不是“YourAssembly.dll”,它不会在内部与命名空间混淆,尽管这可能会让其他人感到困惑不熟悉您的系统的人,通常您只需使用命名空间将它们分开,这样您的 silverlight 框架将位于 *.silverlight 命名空间内,该命名空间与您的项目名称配对,表明命名空间差异将解决您的问题。

于 2012-09-17T10:56:23.013 回答