gpt4 book ai didi

asp.net - 使用 C#6 在 TFS 中构建网站

转载 作者:行者123 更新时间:2023-12-02 16:29:49 26 4
gpt4 key购买 nike

我已将 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 添加到我的 Visual Studio 2015 解决方案中的网站,以使用 Nuget 提供一些 C#6 功能。一切都在本地运行和构建良好。

我已将代码 checkin TFS 并为其创建了一个构建任务。但是,当通过 TFS 构建时,我收到以下错误:

ShowcasePortal\web.config(20,0): Error ASPCONFIG: The CodeDom provider type "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" could not be located.

执行该行时:

Build:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v /localhost_15584 -p ShowcasePortal\ -u -f PrecompiledWeb\localhost_15584\

这一切都托管在 Visual Studio Online 上。

有办法获得这个版本吗?

更新:

我注意到默认情况下 Bin 文件夹不会自动 checkin 。这在本地有 Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll 以及 roslyn 文件夹。我已将其添加到源代码管理中(不太确定是否需要添加 Roslyn 文件夹。添加后即可工作。

packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.2" targetFramework="net461" />
<package id="Microsoft.Net.Compilers" version="1.3.2" targetFramework="net461" developmentDependency="true" />
</packages>

构建定义

构建定义如下所示:

Build Steps

这只是一个解决方案的标准构建,我没有做任何特殊的事情来构建这个构建。

12 月 8 日更新

我将 bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll.refresh 文件添加到版本控制中,并启动了一个生成,但出现以下错误:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v /localhost_15584 -p ShowcasePortal\ -u -f PrecompiledWeb\localhost_15584\ 
ASPNETCOMPILER(0,0): Error ASPRUNTIME: Could not find a part of the path 'C:\a\1\s\ShowcasePortal\bin\roslyn\csc.exe'.

现在 bin\Roslyn 文件夹确实存在于我的本地计算机上。这尚未 checkin 。

nuget 上还有另一个名为 Microsoft.CodeDom.Providers.DotNetCompilerPlatform.BinFix 的包。我安装了这个并尝试了云构建。这不起作用 - 它出现了相同的错误(找不到 csc)。

工作解决方案

添加 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 包时,它会带来依赖的 Microsoft.Net.Compilers 包。这会将文件 Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll 添加到网站 Bin 文件夹中。还有一个 Bin\Roslyn 文件夹未添加到解决方案中。其中包含各种编译器二进制文件。一旦 Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll 以及所有 Bin\Roslyn 文件被 checkin 版本控制,云服务器构建将成功编译。

最佳答案

最适合您的解决方案就像 MrHinsh 提到的那样,您应该使用 NuGet 包来管理 dll。

并在构建定义中使用 Nuget Install task在构建任务之前。

Related Nuget Package

CodeDOM Providers for .NET Compiler... 1.0.2

关于asp.net - 使用 C#6 在 TFS 中构建网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40916441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com