配置 TeamCity 以遵循 csproj 文件中的 OutputPath 指令

发布于 2024-09-11 03:16:18 字数 357 浏览 2 评论 0原文

我正在设置 TeamCity 来构建一些解决方案,这些解决方案的项目具有将构建重定向到 ../../bin/Release 或 ../../bin/Debug 的 OutputPath 指令。显然,这些解决方案在 Visual Studio 2008 中构建得很好,但是当 TeamCity 构建解决方案时,它无法找到引用项目的程序集,并且我们会收到命名空间错误(命名空间“AssemblyBeingBuilt”中不存在类型或命名空间名称“SomeReferencedAssembly”)。

有没有办法告诉 TeamCity 在哪里查找其程序集不在默认位置的引用项目?它确实理解该指令,因为当它构建引用的项目时,输出的方向是正确的。只是它之后构建的其他项目没有找到它们所依赖的程序集。

I'm setting up TeamCity to build some solutions whose projects have an OutputPath directive that redirects the build to ../../bin/Release or ../../bin/Debug. The solutions obviously build fine in Visual Studio 2008 but when TeamCity builds the solutions it fails to find the assemblies of referenced projects and we get namespace errors (The type or namespace name 'SomeReferencedAssembly' does not exist in the namespace 'AssemblyBeingBuilt').

Is there a way to tell TeamCity where to look for referenced projects whose assemblies are not in the default location? It does understand the directive because when it builds the referenced project, the output is directed correctly. Its just that other projects it builds afterwards are not finding the assemblies they depend on.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自我难过 2024-09-18 03:16:18

未找到的引用是第三方(您未编译的代码)还是您的代码?

如果是第三方,那么您需要确保您指向的源代码控制存储库根导致依赖项也被签出。 (或者更糟糕的是,将它们放入 GAC 中或将它们安装在每个构建服务器上,这不是一个好主意,除非必须这样做)

如果您的代码,它们是由同一解决方案中的项目构建还是由不同的解决方案构建?

在某种程度上,您可以使一个项目依赖于另一个项目,然后将构建指向解决方案,这是一件好事。

如果有 2 个不同的解决方案,那么您必须使用依赖项(第 5 节)来设置 Artifact 依赖项。

Are the unfound references 3rd party (code you don't compile), or your code?

If third party, then you want to make sure that the source control repository root you are pointing at at results in dependencies also being checked out. (or worse, putting them in GAC or installing them on each build server, not a good idea unless you have to)

If your code, are they build by a project in the same solution or a different one?

To the degree you can make one project dependent on another and then point the build at a solution, this is a good thing.

If 2 different solutions, then you have to use the Dependencies (section 5) to set up an Artifact dependencies.

弃爱 2024-09-18 03:16:18

您在 teamcity 中使用解决方案运行程序吗?如果是这样,则在每个 csproj 中指定引用的位置。您不需要进行任何额外的配置。

验证引用是否是项目引用而不是程序集引用。程序集引用可能指向 ../../bin/debug/Assembly.dll,在发布版本中编译时不会解析。

您可以查看 csproj 进行确认,或者 Visual Studio 将仅在程序集引用的属性中显示“特定版本”下拉列表。

Are you using the solution runner in teamcity? If so then the location of the references is specified in each csproj. You shouldn't need to do any additional configuration.

Verify that the references are project references rather than assembly references. An assembly reference may point to ../../bin/debug/assembly.dll which would not resolve when compiling in release.

You can look in the csproj to confirm, alternatively visual studio will only show the 'Specific version' dropdown in Properties for assembly references.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文