微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Jenkins 上成功构建了 Asp.Net Web 应用程序 Jenkins Server 是否足够复杂,无法在 IIS 上使用上述构建的解决方案?

如何解决在 Jenkins 上成功构建了 Asp.Net Web 应用程序 Jenkins Server 是否足够复杂,无法在 IIS 上使用上述构建的解决方案?

在工作中,我们的 C# 应用程序是在具有以下内容的开发计算机上开发的(并且我们的应用程序在开发环境中正确构建和运行):

-.NET 框架 4

-Visual Studio 2010

-ASP.NET Web 窗体

在工作中,我们有以下独立的构建服务器

-Windows Server 2012

-Jenkins 与 MS Build

-对于 .NET Framework 4, MS Build 版本是:

C:\Windows\Microsoft.NET\Framework\v4.0.30319>MSBuild.exe -version

Microsoft (R) Build Engine 版本 4.7.2558.0 [Microsoft .NET Framework,版本 4.0.30319.42000] 版权所有 (C) Microsoft Corporation。保留所有权利。

我们用于应用程序的独立后端 sql Server 是:

Microsoft sql Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 2010 年 4 月 2 日 15:48:46 版权所有 (c) Windows NT 6.1(内部版本 7601:Service Pack 1)上的 Microsoft Corporation Enterprise Edition(64 位) )(管理程序)

我们的 .NET 团队和我们的运营团队必须经过大量反复试验才能让 Jenkins 服务器构建包含 17 个项目的 ASP.NET Web 应用程序解决方案。 以下是我们必须对上述解决方案进行的更改,以使 Jenkins 服务器能够在没有错误的情况下构建上述解决方

  1. 我们不得不采用一种名为“Bin deploying”的非常规做法(即黑客 LOL)

https://www.hanselman.com/blog/BINDeployingASPNETMVC3WithRazorToAWindowsServerWithoutMVCInstalled.aspx

我们不得不对与 Microsoft sql Server 和一些 Microsoft Visual Studio 程序集 dll 相关联的 dll 进行“Bin 部署”,因为我们想避免安装 Microsoft sql Server 和 Visual Studio 应用程序,以及它们相应的更新服务包 (SP)。(真的非常规,这是不理想的。)

Synchronization\analysisservicesManager.cs(4,17):错误 CS0234: 类型或命名空间名称analysisservices”在 命名空间“Microsoft”(您是否缺少程序集引用?) [E:\Jenkins\workspace\AFS\DEV\Projects\Acme\Acme_Web_Build\Strange.Acme.SecurityProvider\Strange.Acme.SecurityProvider.csproj]

  1. 在 Jenkins Build Server 上,我们曾经收到以下错误

ActiveDirectory\ActiveDirectoryProvider.cs(84,13):错误 CS1752: 无法嵌入互操作类型“ActiveDs.PathnameClass”。使用 适用的接口代替。 [E:\Jenkins\workspace\AFS\DEV\Projects\Acme\Acme_Web_Build\Strange.Acme.SecurityProvider\Strange.Acme.SecurityProvider.csproj]

因此,基于以下帖子: https://stackoverflow.com/a/2483688/6888123

我在记事本中打开了 Strange.Acme.SecurityProvider.csproj,并设置了 Interop.ActiveDs 程序集 dll,我做了 False(即设置为 False)

错误 错误
..!Shared\lib\Interop.ActiveDs.dll

  1. 我们添加了 /p:GenerateSerializationAssemblies=Off ,根据 (https://stackoverflow.com/a/9187464/6888123 ) 它说构建时间和启动时间会更慢,但我们不得不关闭它以阻止以下错误

“E:\Jenkins\workspace\AFS\DEV\Projects\Acme\Acme_Web_Build\Strange.Acme.Reporting\Strange.Acme.Reporting.csproj” (认目标) (7) -> (GenerateSerializationAssemblies 目标) -> C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(2769,5): 错误 MSB6006:“sgen.exe”退出代码为 -2146232576。 [E:\Jenkins\workspace\AFS\DEV\Projects\Acme\Acme_Web_Build\Strange.Acme.Reporting\Strange.Acme.Reporting.csproj]

但是,IT 运营团队表示下一步是打包甚至发布所述解决方案。我一直在搜索互联网(尤其是 stackoverflow.com 的帖子),以找到一种在我们的 jenkins 构建服务器上使用命令行 msbuild 打包甚至发布我们的解决方案的方法(我将不得不使用 msbuild 或其他一些命令行程序,因为安装 Visual构建服务器上的 Studio 2010 是不好的做法。) 因此,当我在互联网上搜索时,似乎尝试使用 msbuild 打包甚至发布我们的解决方案确实很痛苦,因为我们必须在 .csproj 文件中创建自定义目标。

既然我们已经在 J​​enkins Server 中成功地在我们的解决方案上运行了构建,我认为 Jenkins 可能有一种方法可以只使用构建的解决方案来为页面提供服务? Jenkins Server 是否足够复杂/智能,无法在 IIS 上使用上述构建的解决方案?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。