2

我有一个使用 Nancy Asp.Net Web 应用程序模板使用 Visual Studio 2013 创建的非常简单的项目。

在我的开发机器中,它是由 Visual Studio 2013 成功构建的。

但是当我尝试使用 xbuild 在 Linux Mono 环境中构建相同的源时,它失败了。

这是输出:

root@jannes:/home/hitly/hitly/src/Hitly.Service# xbuild
XBuild Engine Version 12.0
Mono, Version 3.2.8.0
Copyright (C) 2005-2013 Various Mono authors

Build started 3/31/2014 2:11:49 PM.
__________________________________________________
Project "/home/hitly/hitly/src/Hitly.Service/Hitly.Service.csproj" (default target(s)):
        Target RestorePackages:
                Executing: mono --runtime=v4.0.30319 ../.nuget/NuGet.exe install "" -source ""   -RequireConsent -solutionDir "../"
                The specified path is not of a legal form (empty). /home/hitly/hitly/src/.nuget/NuGet.targets: error : Command 'mono --runtime=v4.0.30319 ../.nuget/NuGet.exe install "" -source ""   -RequireConsent -solutionDir "../"' exited with code: 1.
        Task "Exec" execution -- FAILED
        Done building target "RestorePackages" in project "/home/hitly/hitly/src/Hitly.Service/Hitly.Service.csproj".-- FAILED
Done building project
"/home/hitly/hitly/src/Hitly.Service/Hitly.Service.csproj".-- FAILED

Build FAILED. Errors:

/home/hitly/hitly/src/Hitly.Service/Hitly.Service.csproj (default targets) -> /home/hitly/hitly/src/.nuget/NuGet.targets
(RestorePackages target) ->

        /home/hitly/hitly/src/.nuget/NuGet.targets: error : Command 'mono --runtime=v4.0.30319 ../.nuget/NuGet.exe install "" -source "" -RequireConsent -solutionDir "../"' exited with code: 1.

         0 Warning(s)
         1 Error(s)

Time Elapsed 00:00:00.7254640

我无法理解错误的原因。

如何在 Linux 上构建这些源代码?

4

2 回答 2

5

固定的!

我只是将PackagesConfig元素添加到.nuget/NuGet.targets

<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
    <!-- We need to launch nuget.exe with the mono command if we're not on windows -->
    <NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath>
    ++++<PackagesConfig>packages.config</PackagesConfig>
</PropertyGroup>
于 2014-03-31T20:17:52.453 回答
2

NuGet.targets 是 NuGet 包还原的关键文件,但它的版本并没有被 NuGet 人很好地管理。

您遇到的问题只是表明您使用的版本对 Mono 不友好。您的编辑可能有效,但我建议您密切关注 NuGet Git 存储库以获取最新信息,例如http://nuget.codeplex.com/SourceControl/latest#src/Build/NuGet.targets

希望 NuGet 人可以在 Mono 上做更多的测试,因为从长远来看可以防止类似的问题。

(请忘记这个答案。NuGet 最新的控制台可以在最新的 Mono 上运行,并且恢复机制也被更改以摆脱这个目标文件。)

于 2014-04-01T07:07:07.233 回答