Я пытаюсь запустить проект Asp.net MVC, полученный из источника управления TFS. Я добавил все ссылки на сборку, и я могу успешно строить и компилировать без каких-либо ошибок или предупреждений.
Но я получаю следующую ошибку в браузере:
Не удалось найти часть пути 'C:\B8akWorkspace\B8akProject\B8akSolution\B8AK.Portal\Bin\Рослин\csc.exe'.
Вот полный скриншот страницы с ошибкой.
После нескольких дней исследований я понял, что Roslyn - это платформа .NET-компилятора, которая предлагает расширенные функции компиляции. Однако я не понимаю, почему моя сборка пытается найти \bin\roslyn\csc.exe, потому что я не настроил ничего, связанное с Roslyn, и я не намерен использовать Roslyn в своем проекте.
Проблема с шаблонами VS2015 по умолчанию заключается в том, что компилятор фактически не скопирован в каталог tfr\bin\roslyn \, а скорее из каталога {outdir}\roslyn\directory
Добавьте этот код в файл .csproj:
<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'">
<ItemGroup>
<RoslynFiles Include="$(CscToolPath)\*" />
</ItemGroup>
<MakeDir Directories="$(WebProjectOutputDir)\bin\roslyn" />
<Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)\bin\roslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>
В моем случае решение было переустановить/обновить пакеты Nuget:
Затем я посмотрел в .csproj и убедился, что пути к пакетам верны (в моем случае.. \..\packages\*. *) Внутри тегов <ImportProject>
сверху и в <Target>
с именем "EnsureNuGetPackageBuildImports" в дно. Это на MVC 5 и .NET Framework 4.5.2.
Краткий ответ - запустите это в консоли диспетчера пакетов:
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
Ваша сборка пытается найти \bin\roslyn\csc.exe
потому что в ваш проект были добавлены следующие пакеты. \bin\roslyn\csc.exe
просмотрите ваш файл packages.config
, вы можете иметь их оба
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Microsoft.Net.Compilers
Что такое Roslyn и кто добавил их (пакеты) в проект: если вы используете .net Framework 4.5.2 для создания проектов с использованием VS2015, вы могли заметить, что шаблоны проектов используют Roslyn по умолчанию. На самом деле Roslyn является одним из компиляторов с открытым исходным кодом для языков .NET от Microsoft.
Почему мы должны удалить Roslyn: Если ваш проект имеет ссылки на Roslyn, и вы заинтересованы в его развертывании без сервера, вы получите нежелательные ошибки на сайте, так как многие хостинг-провайдеры все еще не обновили свои серверы и, следовательно, не поддерживают Roslyn. вопрос, вам нужно будет удалить компилятор Roslyn из шаблона проекта.
Если вы не заинтересованы в использовании Roslyn, следуйте инструкциям ниже, чтобы удалить его
1. Удалите пакеты Nuget, используйте следующие команды из консоли пакетов Nuget
PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers
2. После этого ваш файл web.config должен быть автоматически обновлен. Если это не так, найдите приведенный ниже код в файле web.config и, если он найден, удалите этот фрагмент кода.
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"></compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"></compiler>
</compilers>
</system.codedom>
Вот более простой способ MSBuild.
<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'">
<ItemGroup>
<RoslynFiles Include="$(CscToolPath)\*" />
</ItemGroup>
<MakeDir Directories="$(WebProjectOutputDir)\bin\roslyn" />
<Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)\bin\roslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>
Но я замечаю, что файлы roslyn также находятся в моем каталоге bin (а не в папке). Приложение, похоже, работает.
Чистый и ремонт работал для меня!
Редактировать: комментаторы говорят, что чистый шаг не является необходимым. Вы можете просто восстановить.
Вам нужно установить Microsoft.CodeDom.Providers.DotNetCompilerPlatform.BinFix, специально созданный для этой ошибки
Попробовав все исправления без сигары, я исправил это, обновив этот пакет Nuget в Visual Studios:
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Мой был с 1.0.0 до 2.0.0 для справки (ошибка больше не показывает)
Итак, Ответ Роба Кэннона по существу работал у меня, но мне пришлось настроить несколько вариантов. В частности, мне пришлось удалить условие на цель, а также изменить атрибут Include, поскольку $CscToolPath был пуст, когда проект строился на нашем сервере сборки. Любопытно, что $CscToolPath не был пустым при запуске локально.
<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" >
<ItemGroup>
<RoslynFiles Include="$(SolutionDir)packages\Microsoft.Net.Compilers.1.1.1\tools\*" />
</ItemGroup>
<MakeDir Directories="$(WebProjectOutputDir)\bin\roslyn" />
<Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)\bin\roslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>
Это известная проблема с Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.6. Понижение до 1.0.5 исправило это для меня.
В комментариях Daniel Neel выше:
версия 1.0.3 пакета Microsoft.CodeDom.Providers.DotNetCompilerPlatform Nuget работает для меня, но версия 1.0.6 вызывает ошибку в этом вопросе
Переход к 1.0.3 разрешил эту проблему для меня.
Обновление пакетов nuget для меня работало Щелкните правой кнопкой мыши по решению > Управление пакетами NuGet для решения и обновить все пакеты и особенно: Microsoft.Net.Compilers и Microsoft.CodeDom.Providers.DotNetCompilerPlatform
В моем случае мне просто нужно было перейти в каталог bin в Visual Studio Solution Explorer (проект веб-приложения) и напрямую включить проект roslyn. Щелкните правой кнопкой мыши папку и выберите "Включить в проект". И снова запустите решение, чтобы запустить процесс сборки.
По умолчанию папка roslyn не была включена.
В моем случае у меня была проблема в Jenkins, когда он пытался развернуть его в Octopus со следующей ошибкой:
MSBUILD : OctoPack error OCT-1676060969: Failed to build the path for '\bin\roslyn\csc.exe' relative to 'T:\workspace\machine.engine\Machine.engine.Test': Invalid URI: The format of the URI could not be determined.. See the inner exception for more details. [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969: System.Exception: Failed to build the path for '\bin\roslyn\csc.exe' relative to 'T:\workspace\machine.engine\Machine.engine.Test': Invalid URI: The format of the URI could not be determined.. See the inner exception for more details. ---> System.UriFormatException: Invalid URI: The format of the URI could not be determined. [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969: at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969: at System.Uri..ctor(String uriString) [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969: at OctoPack.Tasks.Util.OctopusPhysicalFileSystem.GetPathRelativeTo(String fullPath, String relativeTo) in Z:\buildAgent\workDir\20ba9f2e0d5e4022\source\OctoPack.Tasks\Util\OctopusPhysicalFileSystem.cs:line 211 [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969: --- End of inner exception stack trace --- [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969: at OctoPack.Tasks.Util.OctopusPhysicalFileSystem.GetPathRelativeTo(String fullPath, String relativeTo) in Z:\buildAgent\workDir\20ba9f2e0d5e4022\source\OctoPack.Tasks\Util\OctopusPhysicalFileSystem.cs:line 224 [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969: at OctoPack.Tasks.CreateOctoPackPackage.AddFiles(XContainer nuSpec, IEnumerable'1 sourceFiles, String sourceBaseDirectory, String targetDirectory, String relativeTo) in Z:\buildAgent\workDir\20ba9f2e0d5e4022\source\OctoPack.Tasks\CreateOctoPackPackage.cs:line 443 [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969: at OctoPack.Tasks.CreateOctoPackPackage.Execute() in Z:\buildAgent\workDir\20ba9f2e0d5e4022\source\OctoPack.Tasks\CreateOctoPackPackage.cs:line 190 [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
Done Building Project "T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj" (default targets) -- FAILED
причина
Потратив некоторое время, я использовал внутренний разработанный компонент, который использовал Microsoft.Net.Compilers
. Причина, по которой внутренний компонент использовал Microsoft.Net.Compilers
заключалась в том, чтобы преодолеть эту проблему (С#: генерировать некорректную компиляцию выражений) и была решена таким образом (Как использовать С# 7 с Visual Studio 2015?). Это приводит к тому, что, когда я устанавливал компетентную в основную программу, Microsoft.Net.Compilers
добавляются автоматически.
Решение
Мой обходной путь заключался в том, чтобы удалить следующее из нашего внутреннего компонента (после ответа @malikKhalil)
PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers
И выбрал компилятор С# 7 в Jenkins вместо С# 6 и пересобрал, чтобы убедиться, что все работает и собирается правильно.
Затем, наконец, в своей основной программе я попытался обновить свой внутренний компонент. И все, чем строить снова. Он построен без каких-либо проблем или проблем.
Откройте файл проекта и удалите все ссылки с помощью Import Project = "..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0....
Откройте web.config и удалите все атрибуты компиляторов system.codedom
Обновление Microsoft.CodeDom.Providers.DotNetCompilerPlatform от 1.0.0 до 1.0.1 исправило это для меня.
Если вы добавляли ASPNETCOMPILER для компиляции ваших представлений Razor в MVC, например, в https://stackoverflow.com/questions/383192/compile-views-in-asp-net-mvc, затем измените PhysicalPath, чтобы разместить там пакет Roslyn nuget (обычно указываемый через переменную $CscToolPath):
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(CscToolPath)" />
Проблема с шаблонами по умолчанию VS2015 заключается в том, что компилятор фактически не скопирован в каталог {outdir}_PublishedWebsites\tfr\bin\roslyn\
, а скорее в каталог {outdir}\roslyn\
. Вероятно, это отличается от вашей локальной среды, поскольку AppHarbor
создает приложения, используя выходной каталог, вместо того, чтобы создавать решение "на месте".
Чтобы исправить это, добавьте следующее в конец файла .csproj
сразу после блока xml <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">...</Target>
<PropertyGroup>
<PostBuildEvent>
if not exist "$(WebProjectOutputDir)\bin\Roslyn" md "$(WebProjectOutputDir)\bin\Roslyn"
start /MIN xcopy /s /y /R "$(OutDir)roslyn\*.*" "$(WebProjectOutputDir)\bin\Roslyn"
</PostBuildEvent>
</PropertyGroup>
В моем случае, подобно Basim, был пакет NuGet, который рассказывал компилятору, что нам нужен С# 6, которого мы не сделали.
Нам пришлось удалить пакет NuGet Microsoft.CodeDom.Providers.DotNetCompilerPlatform
, который затем был удален:
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform"
version="1.0.0" targetFramework="net452" />
из
Файл package.config<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
В system.codedom
node вы можете увидеть, почему он ввел roslyn: compilerOptions="/langversion:6
У меня есть webproject без файла csproj, и упомянутые здесь решения не работают для меня.
Изменение целевой платформы .NET, переустановка пакетов (Update-Package -reinstall
), а затем Update-Package -reinstall
проекта помогли мне. Вы даже можете изменить целевой фреймворк после этой операции (сделайте так, чтобы вы переустанавливали пакеты nuget снова после).
update-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -reinstall
У меня была такая же проблема во время запуска проекта. вот шаги, которые я выполнил.
Запустите проект еще раз
На этот раз я не вижу ту же ошибку. Это работает как ожидалось
У меня была такая же проблема при установке моего приложения на сервере, когда все работало отлично на локальном хосте.
Ни одно из этих решений не было, у меня всегда была такая же ошибка:
Could not find a part of the path 'C:\inetpub\wwwroot\myApp\bin\roslyn\csc.exe'
Я закончил это:
bin/roslyn
packages\Microsoft.Net.Compilers.1.3.2\tools
Это решило мою проблему.
Чистые решения строить Run
В моем случае это сработало. Удачи.
Удалите папку Bin в своем браузере решений и снова создайте решение. Это решило бы проблему
Добавить свойствоGroup в файл .csproj
<PropertyGroup>
<PostBuildEvent>
if not exist "$(WebProjectOutputDir)\bin\Roslyn" md "$(WebProjectOutputDir)\bin\Roslyn"
start /MIN xcopy /s /y /R "$(OutDir)roslyn\*.*" "$(WebProjectOutputDir)\bin\Roslyn"
</PostBuildEvent>
</PropertyGroup>
Кроме удаления директории Bin из всех проектов внутри решения, также удалите папки obj.
В основной директории решения удалите папку .vs
Сработало для меня, когда я пытался перенести уже готовый проект в пустое решение, созданное в git.
У меня была эта ошибка для Microsoft.CodeDom.Providers.DotNetCompilerPlatform
1.06
но также с 1.0.7
которая работала для @PrisonerZERO. Однако, когда Microsoft выпустила 1.0.8
2017-10-18, она, наконец, снова заработала для меня, и мне не пришлось понижать рейтинг.
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
мое решение использует Nuget для обновления следующих элементов до последней версии: - Microsoft.Net.Compilers - Microsoft.CodeDom.Providers.DotNetCompilerPlatform Затем пересоберите проект. Так как мой проект - это веб-сайт, то нет файла *.csproj. Ошибка выше появляется, когда я пытался просмотреть cshtml в браузере.
Ошибка исправлена после того, как два пункта выше обновлены до последней версии. Я в VS2015 и Windows7 SP1
FYI...
По состоянию на 8/31/2017 обновление до Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.7 работает.
У меня была такая же проблема после обновления DotNetCompilerPlatform. Решено перезапустить Visual Studio > Очистить проект > Построить проект.
Я столкнулся с этой проблемой после обновления некоторых пакетов через NuGet. Для меня работала перестройка (вместо обычной сборки).
Я следовал за этими шагами, и это работало отлично
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
Это можно сделать следующим простым способом:
У меня была эта ошибка после переименования решения и некоторых включенных в него проектов, а также игры с удалением пакетов nuget. Я сравнил новый проект с последним рабочим проектом и обнаружил, что следующие строки отсутствуют, и их необходимо добавить еще:
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
Для этого я решил проблему.
Я столкнулся с этой проблемой с конвейером публикации (который создает каталог _PublishedWebsites) и использовал это как цель в проекте:
<Target Name="CopyRoslynCompilerFilesToPublishedWebsitesDirectory" AfterTargets="AfterBuild" Condition="Exists('$(OutDir)\_PublishedWebsites\$(TargetName)')">
<Copy SourceFiles="@(RoslyCompilerFiles)" DestinationFolder="$(OutDir)\_PublishedWebsites\$(TargetName)\bin\roslyn" ContinueOnError="true" SkipUnchangedFiles="true" />
</Target>
Недостатком является то, что на выходе будут две копии файлов Roslyn.
Я испытал эту ошибку на сервере сборки Jenkins, на котором запущен MSBuild, который выводит файлы сборки в отдельную папку (_PublishedWebsites). Точно так же - папка roslyn не была в каталоге bin, и все файлы roslyn были сосредоточены в файлах bin.
@igor-session answer - единственное, что сработало для меня (поскольку я использую возможности языка С# 6, я не могу просто удалить пакеты nuget в соответствии с другие ответы), но поскольку я также запускаю CodeAnalysis, я получал еще одну ошибку на целевом сервере развертывания:
Была обнаружена попытка переопределения существующего сопоставления для типа Microsoft.CodeAnalysis.ICompilationUnitSyntax с именем "", который в настоящее время сопоставляется с типом Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax, чтобы ввести Microsoft.CodeAnalysis.VisualBasic.Syntax.CompilationUnitSyntax.
Причиной этого является то, что по мере того, как файлы roslyn сбрасываются в основной каталог bin, при запуске xcopy для их воссоздания в вложенной папке roslyn теперь у вас есть 2 копии этих файлов, которые скомпилированы, и есть столкновение между ними. После долгих разочарований я решил "исправить взлом" - дополнительную задачу после сборки, чтобы удалить эти файлы из каталога bin, удалив конфликт.
Теперь мои проекты-нарушители .csproj выглядят так:
................... больше здесь......................
<PropertyGroup>
<PostBuildEvent>
if not exist "$(WebProjectOutputDir)\bin\Roslyn" md "$(WebProjectOutputDir)\bin\Roslyn"
start /MIN xcopy /s /y /R "$(OutDir)roslyn\*.*" "$(WebProjectOutputDir)\bin\Roslyn"
</PostBuildEvent>
</PropertyGroup>
<Target Name="DeleteDuplicateAnalysisFiles" AfterTargets="AfterBuild">
<!-- Jenkins now has copies of the following files in both the bin directory and the 'bin\rosyln' directory. Delete from bin. -->
<ItemGroup>
<FilesToDelete Include="$(WebProjectOutputDir)\bin\Microsoft.CodeAnalysis*.dll" />
</ItemGroup>
<Delete Files="@(FilesToDelete)" />
</Target>
................... больше здесь......................
Мне пришлось изменить файлы проекта WebAPI и MVC, чтобы не создавать представления:
<MvcBuildViews>false</MvcBuildViews>
Это разрешило мою ошибку сервера сборки TFS 2015 Build с roslyn. Все еще не уверен, почему csc.exe был скопирован в \bin\csc.exe, но процесс публикации искал \bin\Roslyn\csc.exe... не смог найти преобразование, вызывающее это несоответствие.
Имейте в виду, что NuGet PM нарушает поведение Розалин. Нажмите Tools > NuGet Package Manager > Manage NuGet Packages for Solution
Если обновление существует для Microsoft.CodeDom.Providers.DotNetCompilerPlatform
, Microsoft.Net.Compilers
или Microsoft.Net.Compilers.netcore
, обновите их, и решение сломается! Это происходит потому, что шаблоны ASP-сайтов настроены на использование определенных версий при создании проекта. Чтобы просмотреть проблему, нажмите "Показать все файлы" в обозревателе решений.
При создании проекта $(WebProjectOutputDir)\bin
не существует, поэтому, когда Rosalyn добавляется как зависимость от NuGet, он устанавливает его правильно. После обновления пакетов решений каталог $(WebProjectOutputDir)\bin
выглядит так:
$(WebProjectOutputDir)\bin\bin\rosalyn
Самое простое исправление - вырезать и вставить rosalyn в нужное место, а затем удалить дополнительную папку bin
. Теперь вы можете обновить страницу и загрузить сайт.
Чтобы сборка не копировала файлы Roslyn в каталог bin, вы также должны прокомментировать эту строку, которая находится в верхней части вашего проекта веб-приложения:
<!-- <Import Project="..\..\..\DAS\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\..\..\DAS\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" /> -->