2

如何从源代码构建 Autofac?我发现只有一个已弃用的 wiki 页面。

我尝试启动 go.cmd (.NET Framework 4.0),但失败并出现错误:

    C:\Autofac\Autofac.csproj" (default target) (4) ->
    (CoreCompile target) ->
    Builder\MetadataConfiguration.cs(28,14): error CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)
    [C:\Autofac\Core\Source\Autofac\Autofac.csproj] Features\LazyDependencies\LazyWithMetadataRegistrationSource.cs(28,14): error CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?) 

我做错了什么?

4

2 回答 2

3

Autofac 3.0 已更新,因此核心 Autofac.dll 是面向多个平台的可移植类库。可移植类库没有对系统程序集的引用,因此缺少的 System.Core 引用是正确的——它不应该存在。您应该能够将 Portable Class Library 与 .NET 4... 或 Windows Store 或 Windows Phone 8 应用程序一起使用。我强烈建议不要修改 .csproj 的引用。您会破坏这种兼容性并无意中更改目标配置文件。

从源代码构建的 wiki 页面已被弃用,因为构建说明位于源代码根目录的自述文件中。(在已弃用的 wiki 页面上提到了这一点 - 第一行。)它解释了所需的所有必备工具和命令。如果您按照其中的信息进行操作,则无需修改任何内容即可获取要构建的源代码。

如果您不修改源代码,我不确定您为什么需要重新构建源代码以专门针对 .NET 4。它应该可以工作。如果您发现某些东西无法正常工作,请在 Autofac 网站上提出相关问题

如果您正在修改源代码,那么其中的自述文件应该可以让您在不弄乱项目引用的情况下进行构建。

于 2012-12-25T15:45:34.933 回答
1

看起来Autofac.csproj不包含对 system.core 的引用。另请参阅此问题此错误报告。那么您可以尝试将其添加到 Autofac.csproj 文件中:

<ItemGroup>
    <Reference Include="System.Core" />
</ItemGroup>

可能您还必须添加其他引用,例如System.

于 2012-12-24T22:29:33.353 回答