我已將Microsoft.CodeDom.Providers.DotNetCompilerPlatform添加到我的網站中我的Visual Studio 2015解決方案中,以使用Nuget提供一些C#6功能。一切都在本地運行並建立良好。在TFS中使用C#6構建Web站點
我已將代碼檢入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\
這一切都是託管在視覺工作室在線。
無論如何得到這個構建?
UPDATE:
我已經通過Bin文件夾中沒有自動檢查默認注意到。這在本地有Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll以及一個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 DEFINITON
的建立定義如下所示:
這只是一個解決方案的沼澤標準構建,我沒有做任何特別的構建。
UPDATE 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文件夾在本地機器上存在。這沒有簽入。
還有一個名爲Microsoft.CodeDom.Providers.DotNetCompilerPlatform.BinFix的nuget包。我安裝了它並嘗試了雲構建。這沒有奏效 - 它出現了相同的錯誤(無法找到csc)。
工作溶液
在添加包Microsoft.CodeDom.Providers.DotNetCompilerPlatform,則它沿着從屬Microsoft.Net.Compilers包帶來的。這將文件Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll添加到網站Bin文件夾。還有一個Bin \ Roslyn文件夾沒有添加到解決方案中。這包含各種編譯器二進制文件。一旦Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll被檢入到版本控制以及所有Bin \ Roslyn文件中,雲服務器版本將成功編譯。
你應該添加聽到的東西作爲一個NuGet包,而不是直接檢查他們到源代碼管理。 –
至少在我的公司中,它發生的原因是因爲它是網站而不是Web應用程序,這意味着一種解決方案將是將網站轉換爲Web應用程序。另一種情況是微軟忘記檢查。 –
我嘗試將我們的單片網站轉換爲以下幾個在線指南的Web應用程序。由於錯誤的數量,我放棄了! – Andez