1

这很奇怪。

从 GitHub 下载最新版本ServiceStack.Text后,我遇到了构建错误。

if (endpointUrl.IsNullOrEmpty() || !endpointUrl.StartsWith("http"))
 return null;

Error   1   No overload for method 'IsNullOrEmpty' takes 0 arguments
ServiceStack\src\ServiceStack.Common\Messaging\ClientFactory.cs 10  18
ServiceStack.Common

我还遇到了许多其他构建错误:

错误 35“int”不包含“Times”的定义,并且找不到接受“int”类型的第一个参数的扩展方法“Times”(您是否缺少 using 指令或程序集引用?)ServiceStack.Redis\ src\ServiceStack.Redis\Messaging\RedisMqServer.cs 192 37 ServiceStack.Redis

在此处输入图像描述

下载ServiceStack 分支后,我什至尝试打开 ServiceStack-master\src\ServiceStack.sln 并尝试构建,但它完全坏了:

在此处输入图像描述

我不知道这里发生了什么,如果有的话,不可能有这么多的构建错误?我不祈祷,但似乎是这样。

这篇文章的目的,我在问什么,需要帮助澄清和解决(神话???)

我需要从 ServiceStack 输入以下内容:

1)构建真的这么坏吗?这是我想象的吗?

2) GitHub 上的分支结构到处都是,这意味着我到处都是 dup 项目文件夹,我不知道这个 ServiceStack 分支是什么,因为它的 src 文件夹中有大量项目,不同版本,以及没有ServiceStack.Text之类的项目,所以我不知道这里发生了什么。我想使用服务堆栈的基本核心,但在 GitHub 上到处都是重复的东西。我需要 ServiceStack 为我清除所有这些。

这是我的代码,因此您可以自己查看,它不会构建。

  • 这个 不会根据 ServiceStack 项目构建 - 这是我的解决方案,我只是试图将我需要的 ServiceStack 项目与我自己的使用 ServiceSTack 的项目一起包含在内。我所做的只是从https://github.com/ServiceStack下载那些单独的项目然后将它们添加到我的解决方案中,并确保对彼此的任何引用现在都是项目引用,不再是二进制文件。我删除了二进制引用并将它们读取为项目引用。因此,例如 ServiceStack.Common 依赖于 ServiceStack.Text 但它通过二进制文件引用它,所以我删除了它并现在将 ServiceStack.Text 的引用作为项目引用重新读取,因为最终我们计划能够查看和使用基本堆栈代码。我在上面发布的错误发生在这个 ServiceStack 相关项目的解决方案中。

  • 这个 不会构建- 它是 ServiceStack 分支 master 的下载(最初文件夹名称是 ServiceStack-master,我删除了 -master)

更新:是的,我确认这是在 GitHub 站点上签入的错误构建(请参阅此处上方的 ServiceStack 分支主控)。我必须删除导致构建失败的未使用的 using 语句,其中之一是导致部分构建失败的 dup using 语句。我对此感到惊讶......应该构建这些东西,人们应该检查成功构建的代码!常见的!是的,mythz,任何尝试使用您的 API 的开发人员都会因为一直存在如此多的构建错误而生气,我什至无法让我们的原型运行,因为这不是唯一不会构建的解决方案。首先,我们的示例解决方案全部中断,现在是核心。如果可以的话,我愿意解决这些问题,但老实说,我不敢相信

在此处输入图像描述

  • 这个 将构建,因为它是 Nuget 关闭,所以 ServiceStack 通过 lib 文件夹中的二进制引用引用其他层,所以这个构建......可能在这里构建,因为有人在所有核心项目中都有一组工作构建,但网站上的东西当您尝试将它们用作项目参考(源代码)时,下载的修订版和损坏的版本不同??只是我的结论,因为它仅在您使用对 lib 文件夹的二进制引用时才构建。我们希望源代码,而不是二进制文件在我们的解决方案中工作,所以这对我来说是一堵砖墙
4

4 回答 4

1

现在master上发生了很多大的变化——它会在一段时间内不稳定。

我建议您从 v3-fixes 标记分支或从 nuget 中提取引用。

于 2013-09-26T14:58:13.837 回答
1

@咖啡瘾君子

昨天,神话在你上一个问题中回答了这些问题

“@CoffeeAddict 就像我之前说的那样,ServiceStack 正在经历重大的重构和掌握 alpha,而不是供公众使用。虽然一切仍在为我构建并且测试仍然在 CI 中通过,但它在 beta 版之前经常不稳定。你'很可能将 v3 与技术上不兼容的 v4 dll 混合在一起。NuGet 上的版本不在每个项目的 v3 分支中,如果你想从 src 构建,这就是你应该检查的内容。任何贡献都应该只对 v3-fixes 进行 - 请参阅贡献文档以获取更多信息。- 9 小时前的神话”

于 2013-09-26T15:02:10.173 回答
0

看起来就像我下载了所有堆栈分支时一样,今天早些时候,贡献者已经签入了损坏的构建。极好。

我今天早上刚收到最新消息,看来人们一定已经修复了构建并检查了一些内容以用于各种核心项目。现在它建立了。

对mythz的建议,现在就安装CI。不要等待 v4。这让我花了一天的时间尝试各种事情来构建这些东西,并且问题涉及多个项目。这不应该发生,请设置 CI。现在是凌晨 2 点,使用这个项目的任何人都不应该处理它。

我会做出贡献,但首先我必须得到一个完整的版本才能工作!不太高兴,因为没有开发人员会浪费一整天的时间来构建 ServiceStack。

于 2013-09-26T14:27:59.147 回答
-3
To compile v3: 
Would someone with true knowledge post PROPER instructions on compiling v4 or v3? I had no luck with the build.bat files for v3 or v4, and opening solutions will not compile for most. 

git clone servicestack, servicestack.text, redis, ormlite

make a new directory and copy from under src so you have these:

ServiceStack
ServiceStack.Client
ServiceStack.Common
ServiceStack.Interfaces
ServiceStack.OrmLite
ServiceStack.Redis
ServiceStack.Server
ServiceStack.Text

open csproj for ServiceStack.Interfaces ... right click properties, go to the signing tab, click the combo, new, type in your own signing pfx, I used servicestackInterfaces.pfx (doesn't matter) and make up a password.
Compiles fine, since it has not much referenced.

saved solution as ServiceStackV3 in folder C:\2015\SSv3compile

add csproj ServiceStack.Text, set signature, compiles ok

add csproj ServiceStack.Common, set signature, remove references, add references using solution for interface, text, compiles ok

add csproj ServiceStack.Client, set signature, remove references, add references  using solution for interface, text, compiles ok

add csproj ServiceStack, set signature, remove references, add references  using solution for client, common, interface, text, compiles ok

add csproj ServiceStack.OrmLite, set signature, remove references, add references  using solution for common, interface, text, compiles ok

add csproj ServiceStack.Redis, set signature, remove references, add references  using solution for common, interface, text, compiles ok

add csproj ServiceStack.ServiceStack.Server, set signature, remove references, add references  using solution for Servicestack, ServiceStack.Client, ServiceStack.Common, ServiceStack.Interface, ServiceStack.Text, ServiceStack.Ormlite, ServiceStack.Redis

compiles ok

have some more trouble compiling the tests...

并找到了很多让我抓狂的调整和更改(在 *.cs 中搜索“namespace ISomethinMissing”的无休止 agentransack

...似乎有名称空间 ServiceStack,其中包含在 Servicestack 以外的项目中的 cs 代码...这不是很不合适吗?(现在你需要两个 DLL?为什么不一个?)无论如何......它是免费的,可以满足我的需求。

looks like there is some code leakage from v4...   

after getting my head around v3, not sure I want to buy v4 - I will probably buy it in the future, I expect, and hope someday I can just clone and compile from the solution

无论如何,我喜欢 servicestack,并且一直在用非常幸福的方式替换旧的 web 服务和 WCF 的配置噩梦......

我说这很值得最初的麻烦。

我把这一切都放在代码块中,因为我发现编辑器不会接受这个简单的文本,当它在一个编号列表中时。任何。

于 2015-01-31T23:19:14.627 回答