Nigetを使用してC#6の機能をいくつか提供するために、Visual Studio 2015ソリューションでMicrosoft.CodeDom.Providers.DotNetCompilerPlatformをマイウェブサイトに追加しました。すべてが実行され、ローカルで細かく構築されます。C#6を使用するTFSの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\
これは、すべてのオンラインのVisual Studioでホストされています。
このビルドを取得するにはどうしますか?
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日
私はバージョン管理にビンの\ 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という名前の別のパッケージがナゲットにあります。私はこれをインストールし、クラウド構築を試みました。これはうまくいかなかった - それは同じエラー(cscを見つけることができなかった)を思い付いた。
WORKING SOLUTION
パッケージMicrosoft.CodeDom.Providers.DotNetCompilerPlatformが追加されると、それが依存Microsoft.Net.Compilersパッケージに沿ってもたらします。これにより、ファイルMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.dllがWebサイトのBinフォルダに追加されます。ソリューションに追加されていないBin \ Roslynフォルダもあります。これにはさまざまなコンパイラバイナリが含まれています。 Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dllがバージョンコントロールとBin \ Roslynファイルのすべてにチェックインされると、クラウドサーバービルドは正常にコンパイルされます。
NuGetパッケージとして聞こえるようにして、ソースコントロールに直接チェックしないでください。 –
少なくとも私の会社では、ウェブアプリケーションではなくWebアプリケーションであるため、ウェブアプリケーションをWebアプリケーションにするプロセスを1つの解決策とすることで、それが起こった。 Microsoftがチェックするのを忘れた別のシナリオ。 –
私はいくつかのオンラインガイドラインに従って、モノリシックなWebサイトをWebアプリケーションに変換しようとしました。私はエラーの量のために諦めました! – Andez