Could not find a part of the path как исправить

I run an application on the server, get this error "Could not find a part of the path".
  • Remove From My Forums
  • Question

  • I run an application on the server, get this error «Could not find a part of the path».

    The partial code is

    string outPath = @"2222-ffffDataWorkBMS";
            string chrName = "chr{0}.psd";
            FileWriter[] fwChr = new FileWriter[45];
            for (int i = 0; i < fwChr.Length; i++)
            {
              fwChr[i] = new FileWriter(Path.Combine(outPath, string.Format(chrName, i + 1)));
              
            }
    

    Thanks for help.

Answers

  • Are you sure C:TestBMS exists?

    • Marked as answer by

      Thursday, November 25, 2010 2:49 PM

  • Resloved it already. My fault.

    • Marked as answer by
      ardmore
      Friday, November 26, 2010 11:28 PM

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
XDocument xdoc = new XDocument(new XElement("XML",
                     new XAttribute("type", "IMOS_ARTICLE"),
                     new XAttribute("version", '2'),
                   new XElement("ARTICLE",
                    new XElement("ART_NAME", "BU_uni"),
                    new XElement("ART_TYPE", "ANGOLO"),
                    new XElement("ART_DESIGN", ""),
                    new XElement("ART_INFO_LONG", ""),
                    new XElement("ART_INFO_SHORT", "")),
                    new XElement("DEFINITION",
                 new XElement("PARAFOLDER",
                    new XAttribute("name", "dimensions"),
                    new XAttribute("label", "параметры"),
 
                 new XElement("EDITBOX",
                    new XAttribute("LABEL", "ART_SIZEX"),
                    new XAttribute("NAME", "ART_SIZEX"),
                    new XAttribute("VALUETYPE", "TEXT"),
                    new XAttribute("ACTIVE", "true"),
                    new XAttribute("VISIBLE", "FALSE"),
                    new XAttribute("LOCKED", "FALSE"),
                    new XAttribute("GEOINFLUENCING", "true"),

Ошибки Path not found и Path does not existПри работе с программами, утилитами и запуске игр пользователи могут столкнуться с появлением ошибок: «Path not found» и «Path does not exist». В этой статье рассмотрим, что это за ошибки и что делать, чтобы их исправить.

Что означают ошибки «Path not found» и «Path does not exist»

Пользователи, владеющие основами английского языка или потрудившиеся воспользоваться переводчиком без проблем поймут суть данных ошибок:

  • Path not found – с английского переводится как: «Путь не найден»;
  • Path does not exist – с английского переводится как: «Путь не существует».

Обе эти ошибки оповещают об одной и той же проблеме, а именно — о невозможности построить путь к указанному файлу. Это может быть, как исполняемый exe файл, так и вспомогательные файлы, требуемые для работы программы или игры.

«Path not found» и «Path does not exist» — что делать, если возникли ошибки

Прежде всего, стоит узнать, что это за путь и к какому файлу он ведет. Если речь идет о ярлыке, то следует зайти в его свойства из контекстного меню, которое вызывается правой кнопкой мыши при клике по ярлыку и посмотреть полный путь. Затем зайти в проводник и проследовать по указанному пути, убедившись, что он существует.

Целостность пути может быть нарушена в результате:

  • Переноса папки, например, в другую папку, на другой диск или съемный носитель;
  • Из-за изменения названия корневой директории или одной из внутренних промежуточных папок;
  • Повреждения файла, к которому происходит непосредственное обращение. Например, в результате ручного вмешательства или вследствие действий вирусных программ.

Если исключить последний пункт, то решений у данной проблемы 2:

  1. Зайти в свойства ярлыка и изменить путь к исполняемому файлу;
  2. Дать корректное соответствующее пути, указанному в свойствах ярлыка, название папок.

Что касается повреждения файла или его отсутствия, то решается данная проблема исключительно переустановкой программы. Некоторые приложения и игры предоставляют функционал для проверки целостности файлов и дают возможность их быстро восстановить без необходимости выполнять полную переустановку.


Если ошибки «Path not found» и «Path does not exist» возникают не во время запуска, а непосредственно во время работы программы, то диагностировать проблемный файл становится на порядок сложнее. Если в тексте ошибки указан путь, то нужно опять-таки по нему проследовать. Если из подсказок есть только конечный файл, к которому происходит обращение, то можно воспользоваться встроенным поиском Windows, чтобы его найти. Но это может стать весьма проблематичным, если файл был удален или переименован.


Ошибки «Path not found» и «Path does not exist» могут возникать и в программировании: при компиляции программ или их запуске. Причина аналогичная – не верное указан путь / url. И решение стандартное – сопоставить указанный путь с иерархией каталогов и сверить соответствие имен папок.

С абсолютным путем (вида: https://www.urfix.ru/content/images/index.php) проблемы возникают редко, так как ссылка будет работать корректно при указании на нее из любого файла и из любой директории.

А вот с относительными путями все сложнее (вида: /content/images/index.php), в которых не указаны корневые директории. Каждый начинающий вебмастер и программист сталкивался с подобной ошибкой. Решается элементарно: либо указывается абсолютный путь, либо – относительный, согласно иерархии каталогов.

Не нашли ответ? Тогда воспользуйтесь формой поиска:

Обновлено: 08.02.2023

Ошибка DirectoryNotFoundException при запуске проекта
я так думаю проект не может прочитать инфу из файла, кто может исправьте пожалуйста. Файл лежит в.

Ошибка при сохранении
Не хочет сохранять ексель после редактирования, выдает ошибку(см фото) и вырубается. В чем проблема.

Ошибка при сохранении бд
Помогите, когда добавляю записи в datagridview тогда все нормально сохраняется, а когда удаляю.

Ошибка при сохранении
мне надо сдать курсовую, помогите.

Here is my code:

Could not find a part of the path E:DebugVipBat

2,313 2 2 gold badges 32 32 silver badges 71 71 bronze badges
433 2 2 gold badges 7 7 silver badges 9 9 bronze badges
@StuartLC is right. If you use verbatim string literal, your string will be exactly as what you write. In this case, it will be exactly E:\Debug\VipBat\ which is not a valid path.

8 Answers 8

The error is self explanatory. The path you are trying to access is not present.

I’m sure that this is not the correct path. Debug folder directly in E: drive looks wrong to me. I guess there must be the project name folder directory present.

Second thing; what is in your string. I am sure that it is an argument placeholder because folder name cannot contains such name. So you need to use String.Format() to replace the actual value.

But first check the path existence that you are trying to access.

38.1k 7 7 gold badges 84 84 silver badges 98 98 bronze badges
@tno2007 It could not find the part that does not exist!

There’s something wrong. You have written:

and the error was

Could not find a part of the path EDebugVCCSBat

This is not the same directory.

In your code there’s a problem, you have to use:

7,154 4 4 gold badges 20 20 silver badges 40 40 bronze badges
4,793 7 7 gold badges 33 33 silver badges 61 61 bronze badges

Is the drive E a mapped drive? Then, it can be created by another account other than the user account. This may be the cause of the error.

DirectoryNotFoundException — Could Not Find Part of the Path

I have a console application I built for myself to rename .mp3 files I download. This application has worked flawlessly for quite a few months, but is all of a sudden tossing the titled exception at me with one particular directory. Not only is it this one directory, but is happening on only a select number of files — 3 of them were successfully renamed.

Here is my directory path and files:

enter image description here

Here is a snippet of the directory path where the exception is thrown, along with the exception’s message:

enter image description here

And here is my code:

I tried changing the path to have / instead of \ with the same result.

The exception that is thrown when part of a file or directory cannot be found.

However, the directory is found and correctly renamed the first 3 files (as depicted in the first image).

Can anyone explain to me why this is happening?

3,978 4 4 gold badges 20 20 silver badges 33 33 bronze badges
Print value of this expression item.FullName.Replace(item.Name.Substring(0, 3), newName) .
May be that the folder name is too long? Try a shorter path on the same files and see if that produces the same error.
This is a common issue with getting files. It search subfolders and will abort when any exception occurs. To continue searching, you need to have an exception handler that will continue searching after the exception. the only way of doing this correctly is to have a recursive function.

56 Answers 56

TL; DR

run this in the Package Manager Console:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r

More information

This problem is not related to Visual Studio itself, so answers suggesting adding build steps to copy files over are rather a workaround. Same with adding compiler binaries manually to the project.

The Roslyn compiler comes from a NuGet package and there is/was a bug in some versions of that package (I don’t know exactly which ones). The solution is to reinstall/upgrade that package to a bug-free version. Originally before I wrote the answer back in 2015 I fixed it by installing following packages at specific versions:

19.7k 53 53 gold badges 67 67 silver badges 88 88 bronze badges
16.3k 2 2 gold badges 9 9 silver badges 22 22 bronze badges
This has saved me hours of trouble shooting. Thank you!
I feel this is Perfect and neat solution, worked for me

The problem with the default VS2015 templates is that the compiler isn’t actually copied to the tfrbinroslyn directory, but rather the roslyn directory

Add this code in your .csproj file:

6,380 2 2 gold badges 14 14 silver badges 13 13 bronze badges
Thanks. I am now able to build and run the project in the browser after I downloaded the Roslyn directory and placing it in the /bin folder. I did not put the PstBuildEvent mentioned above and it still works. Maybe you want to edit your answer above and mention the need to manully placing the Roslyn files and to better reflect the solution.

A clean and rebuild worked for me!

2,662 1 1 gold badge 17 17 silver badges 16 16 bronze badges

Your build is trying to find binroslyncsc.exe because the following packages have been added to your project. Just review your packages.config file, you can have both of them there

if you are not interested in using Roslyn, follow steps bellow to delete it

1. Remove NuGet packages, use the following commands from Nuget Package Console

Could not find a part of the path . binroslyncsc.exe

But I get the following error in the browser:

Could not find a part of the path ‘C:B8akWorkspaceB8akProjectB8akSolutionB8AK.Portalbinroslyncsc.exe’.

Here is a full screenshot of the error page.

enter image description here

1,944 2 2 gold badges 11 11 silver badges 23 23 bronze badges

11.7k 5 5 gold badges 24 24 silver badges 42 42 bronze badges

2 Answers 2

You have a bug in your code which changes the folder instead of the name of the file, running your code:

C:Temp Downloading FolderGregory Alan Isakov Discography [2005 — 2013]Rust Colored Stones5 — Only Ghosts.mp3

C:Temp Downloading FolderGregory Alan Isakov Discography [20Gregory Alan Isakov — 2013]Rust Colored StonesGregory Alan Isakov — Only Ghosts.mp3

I let you debug and fix it yourself.

Try outputting all the strings in your File.Move(. before that line and you will see.

The problem may be due to the length of your folder path. Shorten the length and try again.

Microsoft’s documentation on file naming and path lengths mentions that Windows imposes a 260 character limit for the total length of a path plus it’s filename; this is referenced as the Maximum Path Length Limitation, quoted here for easier reference:

In the Windows API (with some exceptions discussed in the following paragraphs), the maximum length for a path is MAX_PATH, which is defined as 260 characters. A local path is structured in the following order: drive letter, colon, backslash, name components separated by backslashes, and a terminating null character. For example, the maximum path on drive D is «D:some 256-character path string» where «» represents the invisible terminating null character for the current system codepage. (The characters < > are used here for visual clarity and cannot be part of a valid path string.)

However, if you are insistent on using the path names as-is, you can explore using the extended-length path name convention by prefixing paths with the «?» notation.

The Windows API has many functions that also have Unicode versions to permit an extended-length path for a maximum total path length of 32,767 characters. This type of path is composed of components separated by backslashes, each up to the value returned in the lpMaximumComponentLength parameter of the GetVolumeInformation function (this value is commonly 255 characters). To specify an extended-length path, use the «?» prefix. For example, «?D:very long path».

Читайте также:

      

  • Игра syberia о чем
  •   

  • H1z1 сколько стоит
  •   

  • Вольграфф divinity original sin где найти
  •   

  • Borderlands 2 как телепортироваться
  •   

  • Архейдж играть в облаке что это

When opening a solution with a long file path in VS Code using either VS 2022 msbuild or the standalone msbiuld the intellisense is broken.

The console app project will execute correctly when running dotnet run and VS 2022 correctly displays the solution.

I receive an error «Could not find a part of the path» in the omnisharp logs.

[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: c:UsersAlexBurgettdeveltemptest-projsrcA.Really.Long.Long.Long.Long.Long.File.Path.That.Is.Really.Long.I.Mean.Really.LongA.Really.Long.Long.Long.Long.Long.File.Path.That.Is.Really.Long.I.Mean.Really.Long.csproj
[fail]: OmniSharp.MSBuild.ProjectLoader
        Could not find a part of the path 'c:UsersAlexBurgettdeveltemptest-projsrcA.Really.Long.Long.Long.Long.Long.File.Path.That.Is.Really.Long.I.Mean.Really.LongobjDebugnet6.0A.Really.Long.Long.Long.Long.Long.File.Path.That.Is.Really.Long.I.Mean.Really.Long.GeneratedMSBuildEditorConfig.editorconfig'.
[warn]: OmniSharp.MSBuild.ProjectManager
        Failed to load project file 'c:UsersAlexBurgettdeveltemptest-projsr
cA.Really.Long.Long.Long.Long.Long.File.Path.That.Is.Really.Long.I.Mean.Really.LongA.Really.Long.Long.Long.Long.Long.File.Path.That.Is.Really.Long.I.Mean.Really.Long.csproj'.
c:UsersAlexBurgettdeveltemptest-projsrcA.Really.Long.Long.Long.Long.Long.File.Path.That.Is.Really.Long.I.Mean.Really.LongA.Really.Long.Long.Long.Long.Long.File.Path.That.Is.Really.Long.I.Mean.Really.Long.csproj
C:Program FilesMicrosoft Visual Studio2022PreviewMSBuildCurrentBinRoslynMicrosoft.Managed.Core.targets(190,5): Error: Could not find a part of the path 'c:UsersAlexBurgettdeveltemptest-projsrcA.Really.Long.Long.Long.Long.Long.File.Path.That.Is.Really.Long.I.Mean.Really.LongobjDebugnet6.0A.Really.Long.Long.Long.Long.Long.File.Path.That.Is.Really.Long.I.Mean.Really.Long.GeneratedMSBuildEditorConfig.editorconfig'.

Я пытаюсь запустить проект Asp.net MVC, полученный из системы управления версиями TFS. Я добавил все ссылки на сборки, и я могу успешно построить и скомпилировать без каких-либо ошибок или предупреждений.

Но в браузере появляется следующая ошибка:

Не удалось найти часть пути ‘C: B8akWorkspace B8akProject B8akSolution B8AK.Portal bin roslyn csc.exe’.

Вот полный скриншот страницы с ошибкой.

enter image description here

После нескольких дней исследований я понял, что Roslyn — это платформа компилятора .Net, которая предлагает расширенные функции компиляции. Однако я не понимаю, почему моя сборка пытается найти bin roslyn csc.exe, потому что я не настраивал ничего, связанного с Roslyn, и не собираюсь использовать Roslyn в своем проекте.

29 ответов

Лучший ответ

Проблема с шаблонами VS2015 по умолчанию заключается в том, что компилятор фактически копируется не в каталог tfr bin roslyn , а в каталог {outdir} roslyn

Добавьте этот код в свой файл .csproj:

<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'">
    <ItemGroup>
      <RoslynFiles Include="$(CscToolPath)*" />
    </ItemGroup>
    <MakeDir Directories="$(WebProjectOutputDir)binroslyn" />
    <Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)binroslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>


498

Mitchell
7 Ноя 2017 в 10:35

TL; DR

Запустите это в консоли диспетчера пакетов:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r

Дополнительная информация

Эта проблема не связана с самой Visual Studio, поэтому ответы, предлагающие добавить шаги сборки для копирования файлов, скорее являются временным решением. То же самое с добавлением двоичных файлов компилятора в проект вручную.

Компилятор Roslyn происходит из пакета NuGet, и в некоторых версиях этого пакета есть / была ошибка (я точно не знаю, в каких). Решение состоит в том, чтобы переустановить / обновить этот пакет до версии без ошибок. Первоначально, прежде чем я написал ответ еще в 2015 году, я исправил его, установив следующие пакеты в определенных версиях:

  • Microsoft.Net.Compilers 1.1.1
  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.1

Затем я заглянул в .csproj и убедился, что пути к пакетам верны (в моем случае .. .. packages *. *) Внутри тегов <ImportProject> сверху и в <Target> с именем «EnsureNuGetPackageBuildImports» внизу. Это на MVC 5 и .NET Framework 4.5.2.


1394

TylerH
6 Май 2020 в 14:03

Ваша сборка пытается найти binroslyncsc.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=&quot;Web&quot; /optionInfer+"></compiler>
    </compilers>
</system.codedom>


180

Malik Khalil
16 Апр 2020 в 05:55

У меня сработали чистка и ребилд!


170

Community
22 Апр 2019 в 17:25

Вот еще один способ сделать это с помощью MSBuild.

<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'">
    <ItemGroup>
      <RoslynFiles Include="$(CscToolPath)*" />
    </ItemGroup>
    <MakeDir Directories="$(WebProjectOutputDir)binroslyn" />
    <Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)binroslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>

Но я заметил, что файлы roslyn также находятся в моем каталоге bin (а ​​не в папке). Хотя приложение вроде работает.


61

Rob Cannon
8 Окт 2015 в 00:33

Как указано в проблеме в проекте Roslyn на GitHub, решение ( что сработало для меня) просто выгрузить и перезагрузить проект в Visual Studio.

Папка «bin roslyn» не создавалась при сборке или перестройке, пока я не перезагрузил проект.


41

Christian Davén
3 Май 2019 в 07:23

Слишком поздно для ответа, но все еще отправляю сообщения на случай, если это кому-то поможет. Следуя приведенным ниже инструкциям, я исправил ошибку:

  1. удалить папку пакетов
  2. открыть VS
  3. перестроить
  4. обратите внимание, что пакеты NuGet восстанавливаются, но bin roslyn не создается
  5. выгрузить проект
  6. перезагрузить проект
  7. перестроить
  8. обратите внимание, что bin roslyn был создан.


25

Sunil Johnson
1 Июн 2020 в 15:55

У меня также была такая же проблема при запуске проекта. Вот шаги, которым я следовал.

  1. Щелкните правой кнопкой мыши в решении
  2. выберите Чистое решение
  3. После успешной очистки снова создайте свой проект
  4. Снова запустить проект

На этот раз я не увидел той же ошибки. Это работает, как ожидалось.


24

TylerH
20 Май 2020 в 20:26

Попробовав все исправления без сигары, я исправил это, обновив этот пакет Nuget в Visual Studios:

Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Моя была от 1.0.0 до 2.0.0 для справки (ошибка больше не отображается)


23

josh.thomson
12 Июл 2018 в 14:34

  1. Чистое решение
  2. Rebuild Solution, эти два шага у меня сработали.


20

nischa
2 Апр 2019 в 18:42

NuGet Package Manager

Вам необходимо установить Microsoft.CodeDom.Providers.DotNetCompilerPlatform.BinFix, специально созданный для этой ошибки


15

oatsoda
23 Окт 2018 в 09:17

Как уже было отмечено https://stackoverflow.com/questions/32780315#34391473,
быстрое решение — использовать диспетчер пакетов,
Tools> Nuget Package Manager> Package Manager Console, чтобы запустить

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r

Packet Manager Console - how to open

Но альтернативным решением (которое автоматически и незаметно воссоздает ваши пакеты, если они отсутствуют) является удаление атрибута файла Web.config вашего проекта.
(Web.config находится в том же каталоге, что и ваш файл .csproj.)

Откройте файл Web.config в текстовом редакторе (или в Visual Studio).
— В теге configuration> system.codedom> compilers> compiler language="c#;cs;csharp" полностью удалите атрибут type.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!-- ... -->
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:default /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.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=&quot;Web&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>
</configuration>

Короче говоря, удалите строку, которая начинается с type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.

(Предположительно, одно и то же исправление работает как для Visual Basic, так и для Csharp, но я его не пробовал.)

Об остальном позаботится Visual Studio. Больше нет Server Error in '/' Application.

В примере кода, который я предоставил в zip-файле выше, вы теперь получите HTTP Error 403
когда вы нажимаете Ctrl + F5 .

HTTP Error 403.14 - Forbidden

Попробуйте заменить http://localhost:64195 в своем браузере на http://localhost:64195/api/products.
Теперь веб-API отображается так, как должно:

A web API containing products

В качестве провокации я попытался удалить весь каталог package своего решения Visual Studio.
Он был автоматически и незаметно воссоздан, как только я (пере) построил его.


И последнее, но не менее важное: вот код, который воспроизводит ошибку: http://schulze.000webhostapp.com/vs/SrvrErr-reproduce.zip (Первоначально из https://github.com/aspnet/AspNetDocs/tree/master/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client / sample / server / ProductsApp)

Server Error


15

TylerH
20 Май 2020 в 20:26

  • Щелкните правой кнопкой мыши свой проект и выберите «Управление пакетами Nuget».
  • Найдите «Microsoft.CodeDom.Providers.DotNetCompilerPlatform».
  • Просто обновите до более старой или новой версии (не имеет значения, какую), а затем снова обновите до исходной версии.

Это переустановит все зависимости и файлы пакета (например, csc.exe).

Nuget - DotNetCompilerPlatform


14

Bojan
26 Фев 2019 в 15:55

Для VS 2019 полностью удалите следующий узел:

<system.codedom>
</system.codedom>


13

Shadi Namrouti
12 Янв 2020 в 15:22

Итак, ответ Роба Кэннона по существу сработал для меня, но мне пришлось настроить несколько вариантов. В частности, мне пришлось удалить условие на целевом объекте, а также изменить атрибут Include, поскольку $ CscToolPath был пуст, когда проект собирался на нашем сервере сборки. Любопытно, что $ CscToolPath НЕ был пустым при локальном запуске.

<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" >
  <ItemGroup>
    <RoslynFiles Include="$(SolutionDir)packagesMicrosoft.Net.Compilers.1.1.1tools*" />
  </ItemGroup>
  <MakeDir Directories="$(WebProjectOutputDir)binroslyn" />
  <Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)binroslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>


11

Community
23 Май 2017 в 12:02

Обновление пакетов nuget сработало для меня
Щелкните правой кнопкой мыши решение> Управление пакетами NuGet для решения
и обновите все пакеты и особенно:
Microsoft.Net.Compilers
и Microsoft.CodeDom.Providers.DotNetCompilerPlatform


10

hichamkazan
29 Ноя 2016 в 22:52

Согласно комментарию Дэниела Нила выше:

Версия 1.0.3 пакета Nuget Microsoft.CodeDom.Providers.DotNetCompilerPlatform у меня работает, но версия 1.0.6 вызывает ошибку в этом вопросе

Переход на версию 1.0.3 решил эту проблему для меня.


9

Jason Coyne
9 Авг 2017 в 15:43

В моем случае у меня возникла проблема с Jenkins, когда он попытался развернуть его в Octopus со следующей ошибкой:

MSBUILD : OctoPack error OCT-1676060969: Failed to build the path for 'binroslyncsc.exe' relative to 'T:workspacemachine.engineMachine.engine.Test': Invalid URI: The format of the URI could not be determined.. See the inner exception for more details. [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969: System.Exception: Failed to build the path for 'binroslyncsc.exe' relative to 'T:workspacemachine.engineMachine.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:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at System.Uri..ctor(String uriString) [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at OctoPack.Tasks.Util.OctopusPhysicalFileSystem.GetPathRelativeTo(String fullPath, String relativeTo) in Z:buildAgentworkDir20ba9f2e0d5e4022sourceOctoPack.TasksUtilOctopusPhysicalFileSystem.cs:line 211 [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    --- End of inner exception stack trace --- [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at OctoPack.Tasks.Util.OctopusPhysicalFileSystem.GetPathRelativeTo(String fullPath, String relativeTo) in Z:buildAgentworkDir20ba9f2e0d5e4022sourceOctoPack.TasksUtilOctopusPhysicalFileSystem.cs:line 224 [T:workspacemachine.engineMachine.engine.TestMachine.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:buildAgentworkDir20ba9f2e0d5e4022sourceOctoPack.TasksCreateOctoPackPackage.cs:line 443 [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at OctoPack.Tasks.CreateOctoPackPackage.Execute() in Z:buildAgentworkDir20ba9f2e0d5e4022sourceOctoPack.TasksCreateOctoPackPackage.cs:line 190 [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
Done Building Project "T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj" (default targets) -- FAILED

Причина

Потратив некоторое время, я использовал компонент внутренней разработки, который использовал Microsoft.Net.Compilers. Причина, по которой внутренний компонент использовал Microsoft.Net.Compilers, заключалась в преодолении этой проблемы (C #: throw invalid компиляция выражений) и была решена таким образом (Как использовать C # 7 с Visual Studio 2015?). В результате, когда я установил компонент в основную программу, Microsoft.Net.Compilers добавляются автоматически.

Решение

Моя работа заключалась в удалении после нашего внутреннего компонента (после ответа @malikKhalil)

PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers

И выберите компилятор C # 7 в Jenkins вместо C # 6 и выполните перестройку, чтобы убедиться, что все работает и строится правильно.

Затем, наконец, в моей основной программе я попытался обновить свой внутренний компонент. И все, чем строить заново. Он построен без каких-либо проблем или проблем.


9

maytham-ɯɐɥʇʎɐɯ
12 Мар 2019 в 21:09

В моем случае мне просто нужно было перейти в каталог bin в Visual Studio Solution Explorer (проект веб-приложения) и напрямую включить проект roslyn. Щелкнув папку правой кнопкой мыши и выбрав «Включить в проект». И снова зарегистрируйте решение, чтобы запустить процесс сборки.

Папка roslyn по умолчанию не включалась.


8

Martijn van Halen
6 Ноя 2015 в 18:10

В моем случае, просто удалив все внутри папки bin и перекомпилировав всю работу за меня.


8

TylerH
20 Май 2020 в 20:26

Обновление Microsoft.CodeDom.Providers.DotNetCompilerPlatform с 1.0.0 до 1.0.1 устранило это для меня.


8

TylerH
20 Май 2020 в 20:26

Откройте файл проекта и удалите все ссылки с помощью Import Project = «.. packages Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0 ….»

Откройте web.config и удалите все атрибуты компилятора system.codedom.


6

user6326076
12 Май 2016 в 14:21

Удалите папку Bin в обозревателе решений и снова соберите решение. Это решило бы проблему


5

user1903050
16 Дек 2016 в 15:51

В моем случае, прежде чем пробовать какое-либо другое решение, я переключился на конфигурацию «Release», перестроил (папка была создана), а затем снова переключился на «Debug», в то время как папка осталась нетронутой.

Это было извлечение из системы контроля версий более старого решения, и, по-видимому, исходное (автоматическое) восстановление пакета и сборка проекта не создавали эту папку в каталоге bin.

Обратите внимание, что на момент написания этого обвиненный компонент достиг версии 2.


5

G. Stoynev
14 Окт 2020 в 19:46

В моем случае, как и в случае с Basim, был пакет NuGet, который сообщал компилятору, что нам нужен C # 6, а мы этого не сделали.

Нам пришлось удалить пакет NuGet Microsoft.CodeDom.Providers.DotNetCompilerPlatform, который затем удалил:

  1. <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform"
    version="1.0.0" targetFramework="net452" />
    из
    файл packages.config
  2. <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=&quot;Web&quot; /optionInfer+" />
    </compilers>
    </system.codedom>

В узле system.codedom вы можете увидеть, почему он вводил roslyn: compilerOptions="/langversion:6


4

Mark C.
18 Фев 2016 в 14:15

У меня была такая же проблема при установке моего приложения на сервер, когда на localhost все работало отлично.

Ни одно из этих решений не сработало, у меня всегда была одна и та же ошибка:

Could not find a part of the path 'C:inetpubwwwrootmyAppbinroslyncsc.exe'

Я закончил тем, что сделал это:

  • в моем проекте установки щелкните правой кнопкой мыши, выберите> файловая система
  • создать папку bin/roslyn
  • выберите добавить> файлы и добавьте все файлы из packagesMicrosoft.Net.Compilers.1.3.2tools

Это решило мою проблему.


4

josemmo
13 Фев 2017 в 15:45

I recently rearranged the content of my working folder which is used to store all my coding-related projects. But after doing that I had a problem loading the solution of my WinForm project in Visual Studio as I received an error telling me about a problem with a project file.

The exact error message in the Output window was:

error  : The project file could not be loaded. Could not find a part of the path…

Another way you can encounter this error is if you renamed your project folder and sometimes you can get this error without moving or renaming anything at all. In this article, you will be shown how to solve this problem for all those cases.

For those who receive this error but did not move projects around

Try deleting .suo files in your solution folder. Solution User Option file is a binary file which contains various user information and settings such as location of the breakpoints.

If that didn’t help try also to delete .user file.

If you have trouble finding .suo file

In Visual Studio, the .suo file is located inside a hidden .vs folder in solution folder. Since both .vs folder and .suo file have hidden attribute applied to them, you have to reveal them using using File Explorer by changing folder options to «show hidden files, folders and drives».
How to get to this option in File Explorer depends on the version of Windows:

  • In Windows 7, option is located under Organize > Folder and search options.
  • in Windows 8, it is located under View tab > Options > Change folder and search options.
  • in Windows 10, it is the same as in Windows 8.

For those who have this error due to moving projects around or renaming the project

The problem lies with the nonexistent path of one or more projects that are stored in the solution file.

You can solve this problem in two ways:

Using Text Editor

One way to fix this error is to correct the path of the problematic projects yourself by directly editing the .sln file.

For those who feel uncomfortable editing the solution file, there is another way. You can fix the path of the project directly from Visual Studio and this procedure is shown next.

Using Visual Studio

Just follow these steps:

  • Load the solution into VS. You might get Error Popup Window with the message shown below. Ignore the warning and click OK.
    Visual Studio Error Window with message that one or more projects were not loaded.
    Error window with a message «One or more projects in the solution were not loaded correctly. Please see the Output Window for Details.»
  • In the Solution Explorer you should find at least one project that was not loaded. Select that project. It will have (unavailable) text next to the name as shown below:
    Not loaded project in Solution Explorer
    Solution Explorer with unavailable project

    In Properties Window you will find unloaded project properties. There will be a single property named File path which stores the path of the project. We need to change that so click on the path. Browse button will appear on the right as shown in the following image. Click on it.

    Properties Window of the unavailable project showing the project's path.

    Properties Window of the unavailable project showing the project’s path.

    Note:Sometimes, the path in File path property is grayed out and you are unable to get to the Browse button. In this case try deleting .suo files. Don’t worry, these files gets recreated when you rebuild the solution / project.

  • File Dialog box will open. Locate project file (.csproj) and click Open.
  • In the Solution Explorer, the project will still have (unavailable) message besides it. We still need to carry out one more step. Right-click on the project to open context menu. Select Reload Project as shown below:
    Reloading the unloaded project in the solution explorer.
    Reloading the unloaded project in the solution explorer.
  • Build solution. If you get an error telling you that the referenced project does not exist, we need to update references. Save solution and Close it, then Open project again.

Now you should be able to build a solution without getting errors (at least not those relating to paths of a project file).

38 ответов

Проблема с шаблонами VS2015 по умолчанию заключается в том, что компилятор фактически не скопирован в каталог tfrbinroslyn , а скорее из каталога {outdir}roslyndirectory

Добавьте этот код в файл .csproj:

<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'">
    <ItemGroup>
      <RoslynFiles Include="$(CscToolPath)*" />
    </ItemGroup>
    <MakeDir Directories="$(WebProjectOutputDir)binroslyn" />
    <Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)binroslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>

Mitchell
25 сен. 2015, в 12:29

Поделиться

В моем случае решение было переустановить/обновить пакеты Nuget:

  • Microsoft.Net.Compilers 1.1.1
  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.1

Затем я посмотрел в .csproj и убедился, что пути к пакетам верны (в моем случае.. ..packages*. *) Внутри тегов <ImportProject> сверху и в <Target> с именем «EnsureNuGetPackageBuildImports» в дно. Это на MVC 5 и .NET Framework 4.5.2.

Краткий ответ — запустите это в консоли диспетчера пакетов:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r

andy250
21 дек. 2015, в 10:16

Поделиться

Ваша сборка пытается найти binroslyncsc.exe потому что в ваш проект были добавлены следующие пакеты. binroslyncsc.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=&quot;Web&quot; /optionInfer+"></compiler>
    </compilers>
</system.codedom>

Malik Khalil
29 июль 2016, в 23:08

Поделиться

Вот более простой способ MSBuild.

<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'">
    <ItemGroup>
      <RoslynFiles Include="$(CscToolPath)*" />
    </ItemGroup>
    <MakeDir Directories="$(WebProjectOutputDir)binroslyn" />
    <Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)binroslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>

Но я замечаю, что файлы roslyn также находятся в моем каталоге bin (а ​​не в папке). Приложение, похоже, работает.

Rob Cannon
08 окт. 2015, в 00:58

Поделиться

Чистый и ремонт работал для меня!

Редактировать: комментаторы говорят, что чистый шаг не является необходимым. Вы можете просто восстановить.

pipedreambomb
05 янв. 2017, в 12:34

Поделиться

Изображение 1108

Вам нужно установить Microsoft.CodeDom.Providers.DotNetCompilerPlatform.BinFix, специально созданный для этой ошибки

Adrian Berca
19 март 2018, в 15:47

Поделиться

Попробовав все исправления без сигары, я исправил это, обновив этот пакет Nuget в Visual Studios:

Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Мой был с 1.0.0 до 2.0.0 для справки (ошибка больше не показывает)

josh.thomson
12 июль 2018, в 16:08

Поделиться

Итак, Ответ Роба Кэннона по существу работал у меня, но мне пришлось настроить несколько вариантов. В частности, мне пришлось удалить условие на цель, а также изменить атрибут Include, поскольку $CscToolPath был пуст, когда проект строился на нашем сервере сборки. Любопытно, что $CscToolPath не был пустым при запуске локально.

<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" >
  <ItemGroup>
    <RoslynFiles Include="$(SolutionDir)packagesMicrosoft.Net.Compilers.1.1.1tools*" />
  </ItemGroup>
  <MakeDir Directories="$(WebProjectOutputDir)binroslyn" />
  <Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)binroslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>

jonnybot
15 янв. 2016, в 21:05

Поделиться

jrummell
11 авг. 2017, в 15:08

Поделиться

В комментариях Daniel Neel выше:

версия 1.0.3 пакета Microsoft.CodeDom.Providers.DotNetCompilerPlatform Nuget работает для меня, но версия 1.0.6 вызывает ошибку в этом вопросе

Переход к 1.0.3 разрешил эту проблему для меня.

Jason Coyne
09 авг. 2017, в 15:55

Поделиться

Обновление пакетов nuget для меня работало
Щелкните правой кнопкой мыши по решению > Управление пакетами NuGet для решения
и обновить все пакеты и особенно:
Microsoft.Net.Compilers
и Microsoft.CodeDom.Providers.DotNetCompilerPlatform

hichamkazan
29 нояб. 2016, в 23:35

Поделиться

В моем случае мне просто нужно было перейти в каталог bin в Visual Studio Solution Explorer (проект веб-приложения) и напрямую включить проект roslyn. Щелкните правой кнопкой мыши папку и выберите «Включить в проект». И снова запустите решение, чтобы запустить процесс сборки.

По умолчанию папка roslyn не была включена.

Martijn van Halen
06 нояб. 2015, в 19:00

Поделиться

В моем случае у меня была проблема в Jenkins, когда он пытался развернуть его в Octopus со следующей ошибкой:

MSBUILD : OctoPack error OCT-1676060969: Failed to build the path for 'binroslyncsc.exe' relative to 'T:workspacemachine.engineMachine.engine.Test': Invalid URI: The format of the URI could not be determined.. See the inner exception for more details. [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969: System.Exception: Failed to build the path for 'binroslyncsc.exe' relative to 'T:workspacemachine.engineMachine.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:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at System.Uri..ctor(String uriString) [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at OctoPack.Tasks.Util.OctopusPhysicalFileSystem.GetPathRelativeTo(String fullPath, String relativeTo) in Z:buildAgentworkDir20ba9f2e0d5e4022sourceOctoPack.TasksUtilOctopusPhysicalFileSystem.cs:line 211 [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    --- End of inner exception stack trace --- [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at OctoPack.Tasks.Util.OctopusPhysicalFileSystem.GetPathRelativeTo(String fullPath, String relativeTo) in Z:buildAgentworkDir20ba9f2e0d5e4022sourceOctoPack.TasksUtilOctopusPhysicalFileSystem.cs:line 224 [T:workspacemachine.engineMachine.engine.TestMachine.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:buildAgentworkDir20ba9f2e0d5e4022sourceOctoPack.TasksCreateOctoPackPackage.cs:line 443 [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at OctoPack.Tasks.CreateOctoPackPackage.Execute() in Z:buildAgentworkDir20ba9f2e0d5e4022sourceOctoPack.TasksCreateOctoPackPackage.cs:line 190 [T:workspacemachine.engineMachine.engine.TestMachine.engine.Test.csproj]
Done Building Project "T:workspacemachine.engineMachine.engine.TestMachine.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 и пересобрал, чтобы убедиться, что все работает и собирается правильно.

Затем, наконец, в своей основной программе я попытался обновить свой внутренний компонент. И все, чем строить снова. Он построен без каких-либо проблем или проблем.

maytham-ɯɐɥʇʎɐɯ
02 фев. 2018, в 12:49

Поделиться

Откройте файл проекта и удалите все ссылки с помощью Import Project = «..packagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0….

Откройте web.config и удалите все атрибуты компиляторов system.codedom

user6326076
12 май 2016, в 14:32

Поделиться

Обновление Microsoft.CodeDom.Providers.DotNetCompilerPlatform от 1.0.0 до 1.0.1 исправило это для меня.

Ben
13 авг. 2016, в 22:58

Поделиться

Если вы добавляли 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)" />

Anrijs Vītoliņš
03 май 2016, в 12:07

Поделиться

Проблема с шаблонами по умолчанию VS2015 заключается в том, что компилятор фактически не скопирован в каталог {outdir}_PublishedWebsitestfrbinroslyn, а скорее в каталог {outdir}roslyn. Вероятно, это отличается от вашей локальной среды, поскольку AppHarbor создает приложения, используя выходной каталог, вместо того, чтобы создавать решение «на месте».

Чтобы исправить это, добавьте следующее в конец файла .csproj сразу после блока xml <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">...</Target>

<PropertyGroup>
  <PostBuildEvent>
    if not exist "$(WebProjectOutputDir)binRoslyn" md "$(WebProjectOutputDir)binRoslyn"
    start /MIN xcopy /s /y /R "$(OutDir)roslyn*.*" "$(WebProjectOutputDir)binRoslyn"
  </PostBuildEvent>
</PropertyGroup>

Ссылка: https://support.appharbor.com/discussions/problems/78633-cant-build-aspnet-mvc-project-generated-from-vstudio-2015-enterprise

Korayem
04 апр. 2016, в 16:23

Поделиться

В моем случае, подобно 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=&quot;Web&quot; /optionInfer+" />
    </compilers>
    </system.codedom>

В system.codedom node вы можете увидеть, почему он ввел roslyn: compilerOptions="/langversion:6

Mark C.
18 фев. 2016, в 15:36

Поделиться

У меня есть webproject без файла csproj, и упомянутые здесь решения не работают для меня.

Изменение целевой платформы .NET, переустановка пакетов (Update-Package -reinstall), а затем Update-Package -reinstall проекта помогли мне. Вы даже можете изменить целевой фреймворк после этой операции (сделайте так, чтобы вы переустанавливали пакеты nuget снова после).

Miroslav Adamec
15 март 2018, в 12:58

Поделиться

У меня была такая же проблема во время запуска проекта. вот шаги, которые я выполнил.

  • Щелкните правой кнопкой мыши в решении
  • выберите «Чистое решение»
  • После завершения очистки снова создайте проект
  • Запустите проект еще раз

    На этот раз я не вижу ту же ошибку. Это работает как ожидалось

Narendra
04 авг. 2017, в 06:47

Поделиться

У меня была такая же проблема при установке моего приложения на сервере, когда все работало отлично на локальном хосте.

Ни одно из этих решений не было, у меня всегда была такая же ошибка:

Could not find a part of the path 'C:inetpubwwwrootmyAppbinroslyncsc.exe'

Я закончил это:

  • в моем проекте настройки, в правом клике, в представлении > файловой системе
  • создать папку bin/roslyn
  • выберите add > files и добавьте все файлы из packagesMicrosoft.Net.Compilers.1.3.2tools

Это решило мою проблему.

Alexandre Hamon
13 фев. 2017, в 16:23

Поделиться

Чистые решения
строить
Run

В моем случае это сработало. Удачи.

Nour Lababidi
13 сен. 2017, в 23:01

Поделиться

Удалите папку Bin в своем браузере решений и снова создайте решение. Это решило бы проблему

user1903050
16 дек. 2016, в 16:31

Поделиться

Добавить свойствоGroup в файл .csproj

<PropertyGroup>
  <PostBuildEvent>
    if not exist "$(WebProjectOutputDir)binRoslyn" md "$(WebProjectOutputDir)binRoslyn"      
    start /MIN xcopy /s /y /R "$(OutDir)roslyn*.*" "$(WebProjectOutputDir)binRoslyn"
  </PostBuildEvent>
</PropertyGroup>

Igor Semin
13 май 2016, в 10:46

Поделиться

Кроме удаления директории Bin из всех проектов внутри решения, также удалите папки obj.

В основной директории решения удалите папку .vs

Сработало для меня, когда я пытался перенести уже готовый проект в пустое решение, созданное в git.

Erik Silva
13 март 2018, в 17:13

Поделиться

мое решение использует Nuget для обновления следующих элементов до последней версии: — Microsoft.Net.Compilers — Microsoft.CodeDom.Providers.DotNetCompilerPlatform Затем пересоберите проект. Так как мой проект — это веб-сайт, то нет файла *.csproj. Ошибка выше появляется, когда я пытался просмотреть cshtml в браузере.

Ошибка исправлена после того, как два пункта выше обновлены до последней версии. Я в VS2015 и Windows7 SP1

Penny
28 янв. 2018, в 11:35

Поделиться

FYI…

По состоянию на 8/31/2017 обновление до Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.7 работает.

Prisoner ZERO
31 авг. 2017, в 20:10

Поделиться

У меня была такая же проблема после обновления DotNetCompilerPlatform.
Решено перезапустить Visual Studio > Очистить проект > Построить проект.

Uhha
23 авг. 2017, в 18:01

Поделиться

Я столкнулся с этой проблемой после обновления некоторых пакетов через NuGet. Для меня работала перестройка (вместо обычной сборки).

Helen
14 авг. 2017, в 10:58

Поделиться

Я следовал за этими шагами, и это работало отлично

  • Удалить все папки bin и obj
  • Чистое решение и восстановление
  • Запустите эту команду в powershell

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r

Masoud Darvishian
24 янв. 2019, в 07:33

Поделиться

Это можно сделать следующим простым способом:

  • Создайте новый проект подобного типа в любой точке вашей системы. Создайте его и скопируйте в папку roslyn в каталог bin.

Sriman Saswat Suvankar
26 нояб. 2017, в 17:40

Поделиться

У меня была эта ошибка после переименования решения и некоторых включенных в него проектов, а также игры с удалением пакетов nuget. Я сравнил новый проект с последним рабочим проектом и обнаружил, что следующие строки отсутствуют, и их необходимо добавить еще:

  <Import Project="..packagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0buildMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..packagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0buildMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
  <Import Project="..packagesMicrosoft.Net.Compilers.1.0.0buildMicrosoft.Net.Compilers.props" Condition="Exists('..packagesMicrosoft.Net.Compilers.1.0.0buildMicrosoft.Net.Compilers.props')" />
  <Import Project="$(MSBuildExtensionsPath)$(MSBuildToolsVersion)Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)$(MSBuildToolsVersion)Microsoft.Common.props')" />

Для этого я решил проблему.

TTT
31 июль 2017, в 14:33

Поделиться

Я столкнулся с этой проблемой с конвейером публикации (который создает каталог _PublishedWebsites) и использовал это как цель в проекте:

<Target Name="CopyRoslynCompilerFilesToPublishedWebsitesDirectory" AfterTargets="AfterBuild" Condition="Exists('$(OutDir)_PublishedWebsites$(TargetName)')">
    <Copy SourceFiles="@(RoslyCompilerFiles)" DestinationFolder="$(OutDir)_PublishedWebsites$(TargetName)binroslyn" ContinueOnError="true" SkipUnchangedFiles="true" />
</Target>

Недостатком является то, что на выходе будут две копии файлов Roslyn.

EKW
22 июнь 2017, в 07:17

Поделиться

Я испытал эту ошибку на сервере сборки 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)binRoslyn" md "$(WebProjectOutputDir)binRoslyn"
   start /MIN xcopy /s /y /R "$(OutDir)roslyn*.*" "$(WebProjectOutputDir)binRoslyn"
 </PostBuildEvent>
</PropertyGroup>
<Target Name="DeleteDuplicateAnalysisFiles" AfterTargets="AfterBuild">
   <!-- Jenkins now has copies of the following files in both the bin directory and the 'binrosyln' directory. Delete from bin. -->
   <ItemGroup>
     <FilesToDelete Include="$(WebProjectOutputDir)binMicrosoft.CodeAnalysis*.dll" />
   </ItemGroup>
   <Delete Files="@(FilesToDelete)" />
</Target>

………………. больше здесь………………….

Ciaran
21 дек. 2016, в 13:02

Поделиться

Мне пришлось изменить файлы проекта WebAPI и MVC, чтобы не создавать представления:

<MvcBuildViews>false</MvcBuildViews>

Это разрешило мою ошибку сервера сборки TFS 2015 Build с roslyn. Все еще не уверен, почему csc.exe был скопирован в bincsc.exe, но процесс публикации искал binRoslyncsc.exe… не смог найти преобразование, вызывающее это несоответствие.

Robert J. Good
21 окт. 2016, в 18:34

Поделиться

Проблема

Имейте в виду, что NuGet PM нарушает поведение Розалин. Нажмите Tools > NuGet Package Manager > Manage NuGet Packages for Solution Если обновление существует для Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Microsoft.Net.Compilers или Microsoft.Net.Compilers.netcore, обновите их, и решение сломается! Это происходит потому, что шаблоны ASP-сайтов настроены на использование определенных версий при создании проекта. Чтобы просмотреть проблему, нажмите «Показать все файлы» в обозревателе решений.

Fix

При создании проекта $(WebProjectOutputDir)bin не существует, поэтому, когда Rosalyn добавляется как зависимость от NuGet, он устанавливает его правильно. После обновления пакетов решений каталог $(WebProjectOutputDir)bin выглядит так:

$(WebProjectOutputDir)binbinrosalyn

Самое простое исправление — вырезать и вставить rosalyn в нужное место, а затем удалить дополнительную папку bin. Теперь вы можете обновить страницу и загрузить сайт.

eyoung100
28 июль 2016, в 21:02

Поделиться

Чтобы сборка не копировала файлы Roslyn в каталог bin, вы также должны прокомментировать эту строку, которая находится в верхней части вашего проекта веб-приложения:

<!--  <Import Project="......DASpackagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1buildMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('......DASpackagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1buildMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.props')" /> -->

Basim
17 дек. 2015, в 21:34

Поделиться

Ещё вопросы

  • 0Как обновить HTML-контент, когда я выполняю процесс в предложении, в то время как с JavaScript
  • 0Rational Software Architect, как читать файлы .h и .cpp в новый проект
  • 0Получить 2 изображения по вертикали
  • 0Изменить цвет фона полного столбца CListCtrl в MFC
  • 0Как стилизовать кнопку Тип ввода в HTML
  • 1Как получить позицию несоответствия, используя Linq или лямбда-операцию на двух строковом массиве
  • 1Метод в Vue запускается дважды по клику
  • 1Python: удалить список связанных узлов
  • 1Нет модуля с именем PIL после установки Pillow (v5.2.0) с pip v18.0
  • 0$ jasmine test не определен
  • 1Случайный цвет в C # WPF
  • 0Доступ к элементу внутри templateUrl из контроллера — AngularJS
  • 1Сортировка панд df по отдельным столбцам
  • 1получить новое введенное значение ячейки DataGridView, используя c #
  • 0Пытаетесь написать чисто виртуальный метод, но у меня, видимо, неправильный синтаксис?
  • 1javascript: самый короткий код для поиска ключа объекта, соответствующего шаблону
  • 1Android — проверяемые кнопки в меню настроек
  • 0соединить MySQL с Firebase
  • 1Как привести клиента на другую страницу и изменить загруженный файл в коде в .NET?
  • 0Как поместить прямоугольник в середину
  • 1Ошибка проверки Paypal — ReferenceError: действия не определены
  • 0Как запустить код в модуле YUI?
  • 1Извлечение свойств объекта JSON в новый массив с помощью Javascript
  • 0Серые блоки на фоновом изображении [дубликаты]
  • 0Ошибка: [ng: areq] Аргумент не является функцией, получил неопределенный
  • 1Пользовательское позиционирование заголовка
  • 0Использование мобильных служб Azure в приложении C ++
  • 1Как прочитать данные- * элемента в VueJs?
  • 1Зачем мне явно импортировать модули, когда они уже импортированы?
  • 0Как избежать событий на элементах позади других в HTML и JavaScript / jQuery
  • 0Поддерживает ли $ templateCache предварительную загрузку изображений?
  • 1C # программа зависает на Socket.Accept ()
  • 1Импортировать проблемную таблицу «hibernate_sequence» с Generation.type
  • 0Проверка jQuery с отключенной кнопкой отправки
  • 0переменная сфера в угловой службе
  • 0Использование JS для циклического перемещения списка в соответствии с текстом
  • 1Как использовать лямбду, чтобы применить стиль к Pandas DataFrame
  • 0Странная ошибка компоновщика
  • 1Python Pandas — Как подавить PerformanceWarning?
  • 1Тайм-аут для функции
  • 1npgsql 2.1.3 и EF 6: не удалось определить версию хранилища; требуется действительное подключение к хранилищу или указание версии
  • 0php jquery отправляет параметры сообщения на другую страницу php
  • 0Как включить несколько файлов JS в зависимости от события onload или $ (document) .ready ()?
  • 1Сравнение строки с массивом
  • 1Получить данные ViewBag от контроллеров для просмотра
  • 1WPF Usercontrol изменить размер блока
  • 0Docker создает несколько контейнеров
  • 0Как получить данные на основе этого критерия?
  • 1Есть ли альтернатива TextView?
  • 1Как выполнить сложное / поэлементное матричное векторное умножение в numpy? [Дубликат]

Понравилась статья? Поделить с друзьями:
  • Could not enter matchmaking valorant error
  • Could not enter match inprogress pubg ошибка
  • Could not do normal boot invalid kernel length как исправить
  • Could not determine default pdf printer как исправить
  • Could not determine a temp directory name try running setup exe t path как исправить