CodeDom 공급자 유형“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider”를 찾을 수 없습니다


159

VS2015를 사용하는 WebApi 프로젝트입니다.

재현 단계 :

  1. 빈 WebApi 프로젝트 만들기
  2. 빌드 출력 경로를 "bin \"에서 "bin \ Debug \"로 변경하십시오.
  3. 운영

여기에 이미지 설명을 입력하십시오

빌드 출력 경로를 "bin \"에서 "bin \ Debug \"로 변경할 때까지 모든 것이 완벽하게 작동합니다. 실제로 "bin \"이외의 출력 경로는 작동하지 않습니다.

약간의 추가 사항은 "bin \"에 빌드를 남겨두면 다른 곳으로의 출력 경로를 갖는 것이 작동한다는 것입니다.

이 문제를 해결하기위한 솔루션을 제공하십시오. 실제 배포에 문제가있을 것 같습니다.


왜 웹 응용 프로그램의 출력 경로를 변경했는지 물어볼 수 있습니까? 감사합니다.
X-Mao

이 예외는 msbuild 컴파일 중에 이전에 실행 된 ASP.NET MVC 응용 프로그램을 새로 고칠 때마다 발생합니다 .
Nikolay Kostov

나에게도 같은 일이 일어났다. 두 개의 .dll 라이브러리에 대한 참조를 추가 한 후에 시작되었습니다. 라이브러리를 제거했다가 다시 설치하여 수정했습니다. 왜 이런 일이 일어 났는지 전혀
모른다

답변:


127

프로젝트에 Roslyn 참조가 있고 IIS 서버 에 배포하는 경우 많은 호스팅 제공 업체가 여전히 서버를 업그레이드하지 않아 Roslyn을 지원하지 않으므로 웹 사이트에 원치 않는 오류가 발생할 수 있습니다.

이 문제를 해결하려면 프로젝트 템플릿에서 Roslyn 컴파일러를 제거해야합니다 . Roslyn을 제거해도 코드 기능에 영향을 미치지 않아야합니다. 그것은 나와 내가 일한 다른 프로젝트 (C # 4.5.2)에서 잘 작동했습니다.

다음 단계를 수행하십시오.

  1. 아래 표시된 명령 줄을 사용하여 다음 Nuget 패키지에서 제거하십시오 ( 또는 루트 프로젝트 솔루션을 마우스 오른쪽 단추로 클릭하고 제거하여 Nuget 패키지 관리자의 GUI를 사용할 수 있음 ).

    PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
    PM> Uninstall-package Microsoft.Net.Compilers
  2. Web.Config 파일에서 다음 코드를 제거하고 IIS를 다시 시작하십시오 . ( 이 방법은 1 단계로 문제가 해결되지 않는 경우에만 사용하십시오. )

    <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>


4
나는 약 하루 동안 " '/'응용 프로그램의 서버 오류"에 붙어 있습니다. Visual Studio 2015에서 간단한 Hello World 응용 프로그램을 컴파일하여 웹 서버에 배포 하고이 오류가 발생합니다. 위의 <compiler> 줄을 제거하면이 문제가 사라졌습니다. 지구상에서 어떻게 이런 일이 발생하고 더 나은 솔루션이 있는지 알고 싶습니다. MS가 아무 테스트도하지 않는 것처럼 문제를 일으키지 않고서도 이런 방식으로 hello world 앱을 배포 할 수 없다고 생각합니다
.--

4
Roslyn을 활성화하려면 다음 기사를 참조하십시오. ASP.NET 응용 프로그램에서 .NET 컴파일러 플랫폼 (“Roslyn”) 활성화 ASP.NET 에서 Roslyn이 컴파일되는 이유는 무엇입니까? ASP.NET 응용 프로그램에서 새로운 Roslyn 컴파일러를 사용하면 다음과 같은 두 가지 주요 이점이 있습니다. * 새로운 언어 기능 지원 * 잠재적으로 향상된 응용 프로그램 시작 / 사전 컴파일 시간
vibs2006

1
새 웹 프로젝트를 만들었을 때 이미 해당 참조가 포함되어있었습니다. 기본적으로 설치되는 이유는 무엇입니까? 또한 Roslyn은 새로운 C # 컴파일러입니다. 그것을 제거하면 Visual Studio가 어떻게 깨지지 않습니까?
Jens Mander

@JensMander는 모두 컴파일 런타임입니다. IIS에서는 Roslyn Compiler를 수동으로 활성화해야합니다. 기사에 관한 이전 의견의 링크를 참조하십시오'Enabling the .NET Compiler Platform.
vibs2006

같은 오류가 발생하여 마침내 Microsoft.CodeDom.Providers.DotNetCompilerPlatform의 최신 패키지가 해결되었습니다.
Red

48

이 답변의 조언을 따르십시오. 문제를 해결하는 동안 나중에 다른 문제가 발생할 수 있습니다.

나는 같은 문제를 겪었다. 분명히 .NET 컴파일러가에로드되지 않았습니다 GAC. 내가 그것을 해결하기 위해 한 것은 다음과 같습니다.

먼저 패키지 관리자 콘솔에서 다음을 입력하십시오.

PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

이제 어떤 이유로 Microsoft의 훌륭한 신사들이 GAC에 설치하지 않기로 결정했습니다. 개발자 명령 프롬프트를 열고 다음을 입력하여 수동으로 수행 할 수 있습니다.

gacutil -i "C:\*PATH TO YOUR APP CODE*\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll"

결론

Microsoft는 모든 사용자가 너겟 시스템으로 인해 가끔 버그가 발생하지 않아도 괜찮은 너겟으로 모든 작업을 수행하도록 권장합니다. 다른 솔루션에서 동일한 프로젝트를 사용하거나 실수로 그중 하나에서 사용하는 많은 너겟 중 하나를 업데이트하십시오. 운이 좋지 않은 경우 다른 솔루션을 빌드하려고 할 때의 의미를 알 수 있습니다. 반면에, GAC에 파일을 넣는 것은 사람들이 자신이 넣은 것을 잊어 버리고 새로운 환경을 설정할 때 이러한 파일을 포함하는 것을 잊어 버리기 때문에 미래의 문제를 야기 할 수 있습니다. 또 다른 가능한 해결책은 파일을 타사 dll의 중앙 폴더에 저장하는 것입니다 (컴파일러 타사를 호출하는 것이 이상하더라도). 새로운 환경을 설정할 때 깨진 참조의 문제가 발생합니다. dll을 GAC에 설치하기로 결정한 경우 주의를 기울이고 그렇게했음을 기억하십시오. 그렇지 않다면 각 프로젝트에 대한 너겟을 다시 다운로드하고 그로 인한 모든 성가신 버그를 가두십시오 (적어도 결국 아프고 GAC에 파일을 넣을 때 발생했습니다). 두 가지 방법 모두 두통을 유발하고 문제를 일으킬 수 있습니다. 이는 어떤 문제를 다루기를 선호하는지에 대한 문제 일뿐입니다. 너겟 시스템을 사용하는 것이 좋으며, 너겟 시스템이 완전히 아프거나 더 나은 대안이 될만큼 오랫동안 GAC를 다루지 않는 한 일반적으로 SO의 알 수없는 프로그래머보다 듣는 것이 좋습니다. 당신을 위해. 각 프로젝트에 대한 너겟을 다시 다운로드하고 그로 인한 모든 성가신 버그를 가두십시오 (적어도 결국 아프고 GAC에 파일을 넣을 때 발생했습니다). 두 가지 방법 모두 두통을 유발하고 문제를 일으킬 수 있습니다. 이는 어떤 문제를 다루기를 선호하는지에 대한 문제 일뿐입니다. 너겟 시스템을 사용하는 것이 좋으며, 너겟 시스템이 완전히 아프거나 더 나은 대안이 될 수있을 정도로 오랫동안 GAC를 다루지 않는 한 일반적으로 SO의 알 수없는 프로그래머보다 듣는 것이 좋습니다. 당신을 위해. 각 프로젝트에 대한 너겟을 다시 다운로드하고 그로 인한 모든 성가신 버그를 가두십시오 (적어도 결국 아프고 GAC에 파일을 넣을 때 발생했습니다). 두 가지 방법 모두 두통을 유발하고 문제를 일으킬 수 있습니다. 이는 어떤 문제를 다루기를 선호하는지에 대한 문제 일뿐입니다. 너겟 시스템을 사용하는 것이 좋으며, 너겟 시스템이 완전히 아프거나 더 나은 대안이 될 수있을 정도로 오랫동안 GAC를 다루지 않는 한 일반적으로 SO의 알 수없는 프로그래머보다 듣는 것이 좋습니다. 당신을 위해.


40
GAC에 있지 않아야합니다. Nuget 접근 방식의 핵심은 호스트 시스템에서 아무것도 변경하지 않고 프로젝트가 특정 버전의 C # 또는 VB.NET을 사용하도록하는 것입니다. MSFT의 Damian Edwards에서이 포스트를보십시오 : blogs.msdn.microsoft.com/webdev/2014/05/12/…
Sudhanshu Mishra

29
이 어셈블리는 GAC 기간에 속하지 않습니다. GAC에 배치하면 코드를 유지 관리 해야하는 사람이 잘못된 컴파일러가 사용되는 이유를 결정할 수 없을 때 결국 두통이 발생합니다.
EKW

5
Microsoft 설명의 경우 -1입니다. 요즘 그렇게하는 것이 멋지다. BTW, 너겟은 당신이 단순히 무시하고있는 인기를 얻은 많은 장점을 가지고 있습니다. 이제 Microsoft 신사가 이것에 대해 어떻게 생각하는지 상상해보십시오.
Fabio Milheiro

2
@YuvalPerelman Microsoft는 지난 3-4 년 동안 많은 파괴적인 작업을 수행합니다 (Visual Studio 불안정화, 매우 낮은 품질의 제품 생성 등). 때로는 개발 부서 전체가 해고되기를기도하기까지합니다. 그러나 그것은 사실이 아닙니다!
Maris

2
이 의존성을 GAC하는 것은 한동안 내가 본 가장 멋진 것입니다.
Svend

31

다음 nuget 패키지를 프로젝트에 추가하십시오- Microsoft.CodeDom.Providers.DotNetCompilerPlatform.

같은 문제가 있었다.


조금 조심하십시오. web.config 내의 'compilerOptions'를 덮어 쓰므로 설치하기 전에 사용자 정의 값을 저장하십시오.
Radderz

19

내 앱이 Vs2013에서 작동했지만 Vs2015로 업데이트 한 후 오류가 발생하는 것과 동일한 문제가 있습니다.

  1. Vs2015에서 프로젝트의 References 폴더를 마우스 오른쪽 버튼으로 클릭하여 NuGet Package Manager를 엽니 다.
  2. 찾아보기 탭에서 "DotNetCompilerPlatform"을 검색하고 "Microsoft.CodeDom.Providers.DotNetCompilerPlatform"lib를 설치하십시오.

2
팁이 프로젝트의 References 폴더를 마우스 오른쪽 버튼으로 클릭하여 패키지 관리자를 여는 것에 감사드립니다
garyh

3
먼저 제거한 다음 NuGet에 다시 설치하십시오. 그것은 나를 위해 일했다.
Matt

당신은 전설입니다
Mo D Genesis

16

오래된 스레드라는 것을 알고 있지만 DotNetCompilerPlatform.dll의 가능한 버전 문제를 지적하고 싶습니다. 전의. 업데이트 후. 새로 생성 된 Web.config 파일이 릴리스 된 web.config, 특히 system.codedom 부분과 다른지 확인하십시오. 필자의 경우 버전이 1.0.7에서 1.0.8로 변경되었습니다. 새 dll은 이미 서버에 복사되었지만 이전 web.config (일부 서버 특수 설정)는 변경하지 않았습니다.

<pre>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.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.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>
  </system.codedom>
</pre>

두 줄을 업데이트하면 오류가 사라졌습니다.


1
나는 DotNetCompilerPlatform에 문제가있는 모든 단일 시간 나는 그것을 업데이트합니다.
LarryBud

2
버전 속성을 제거하면 다음 업데이트에서도 작동하며 오류가 다시 발생하지 않습니다.
MiguelSlv

난 그냥 제외했다 동일한 문제에서 업데이트했습니다 2.0.02.0.1
로리 McCrossan

12

재현 단계에 따르면 응용 프로그램 속성에서 출력 경로를 변경하는 것이 응용 프로그램을 만든 후 유일한 변경이라고 가정했습니다. 이 변경 사항은 Visual Studio가 MSBuild의 출력 어셈블리를 새 폴더에 넣도록 지시합니다. 그러나 런타임에 ASP.Net은 \ bin 폴더 대신이 새 폴더에서 어셈블리를로드해야한다는 생각이 없습니다.

답변 은 WebApi 응용 프로그램의 빌드 출력 디렉토리를 변경하는 방법을 보여줍니다. 해당 게시물에 표시된 동일한 오류를 얻으려면 web.config의 전체 <system.codedom> 섹션을 주석 처리해야합니다. 그런 다음 지시에 따라 출력 경로를 변경할 수 있습니다.

응용 프로그램 작업을 수행 한 후 <system.codedom> 섹션의 주석 처리를 제거 할 수 있습니다. 응용 프로그램에서 C # 6 새 구문을 전혀 사용하지 않으면 응용 프로그램에서 Microsoft.CodeDom.Providers.DotNetCompilerPlatform을 제거 할 수 있습니다. 그렇지 않으면 빌드 후 이벤트에 다음 명령 줄을 추가 할 수 있습니다.

xcopy /Q /Y "$(TargetDir)roslyn\*.*" "$(TargetDir)..\roslyn\"

새 CodeDom 공급자는 항상 \ bin에서 "\ roslyn"폴더를 찾습니다. 위의 명령은 해결 방법으로 작동하며 \ roslyn 폴더를 새 출력 폴더에서 \ bin으로 복사합니다.

그러나 실험에서 Visual Studio의 게시 도구는 출력 경로 설정에 관계없이 출력 위치를 배포 위치의 \ bin 폴더에 게시했습니다. 귀하의 응용 프로그램은 여전히 ​​실제 배포에서 작동해야한다고 생각합니다.


10

쉬운 방법- 프로젝트> NuGet 패키지 관리 ...> 찾아보기 (탭)> 검색 입력에서 다음을 설정하십시오. Microsoft.CodeDom.Providers.DotNetCompilerPlatform

이 컴파일러를 설치 또는 업데이트하거나 제거하고 설치할 수 있습니다

DotNetCompiler 플랫폼


8

또 다른 가능한 해결책 :

관리자 권한으로 Visual Studio 인스턴스를 다시 시작하십시오.

여기에 이미지 설명을 입력하십시오


4

프로덕션 서버에 게시 한 후 중지되었습니다. 이 오류가 표시되는 이유는 하위 폴더 에 배포 되었기 때문 입니다. IIS에서 하위 폴더를 마우스 오른쪽 버튼으로 클릭하고 "응용 프로그램으로 변환"을 실행 한 후 작동했습니다.


응용 프로그램으로 변환이 필요했습니다. (이것은 이전에 출판되지 않은 새로운 프로젝트였습니다.)
Patrick

하위 폴더를 사용하는 것도 문제였습니다. 그래서 기본 폴더로 이동하여 작업이 시작되었습니다.
J_L

4

제 경우에는 응용 프로그램 폴더의 권한을 변경하고 IIS_IUSRS 계정이 제거되면 이런 일이 발생했습니다. IIS_IUSRS (IIS 관리자-> YourWebApp-> 권한 편집-> IIS_IUSRS 추가)를 응용 프로그램 폴더에 다시 추가하고 작업했습니다.


IUSR 권한을 추가했지만 충분하지 않습니다. "IIS_IUSRS"를 추가 한 다음 작동했습니다.
zacharydl

3

내가 해결 한 방법은 다음과 같습니다 .

  1. bin프로젝트 디렉토리에서 폴더를 삭제했습니다 .
  2. 를 클릭하십시오 Build Solution. 에서 VS2017 (관리자 권한으로 실행)> 빌드> 빌드 솔루션 .


2

솔루션에 많은 프로젝트가 있었고 웹 프로젝트 (이 오류를 발생시키는 문제)가 시작 프로젝트로 설정되지 않았습니다. 이 웹 프로젝트를 시작 프로젝트로 설정하고 "Debug"-> "Start Debugging"메뉴 항목을 클릭하여 작동했습니다. 디버깅을 중단했다가 다시 시도했는데 다시 작동합니다. 기묘한.


2

그런 다음 문제가 다시 발생했습니다. 나는 모두 제거 Microsoft.CodeDom.Providers.DotNetCompilerPlatform하고 Uninstall-package Microsoft.Net.Compilers있지만 도움을. 그런 다음 설치-도움이되지 않습니다. 프로젝트를 청소하고 도움을 얻지 못했습니다. 서버를 다시 시작하면 도움이되지 않습니다. 그러면 프로젝트가 현재 1.0.5이지만 1.0.3 인 최신 프로젝트가 필요하지 않아 오류가 1.0.3 버전을로드 할 수 없었습니다. 그래서 그 dll 버전을 대신 설치했는데 이제 작동합니다.


1

ASP.NET은 bin/debug다른 유형의 응용 프로그램과 같은 어셈블리에 대해 bin 아래의 하위 폴더를 검색하지 않습니다 . 다음 구성을 사용하여 런타임이 다른 위치를 찾도록 지시 할 수 있습니다.

<configuration>
   <runtime>   
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin\Debug;bin\Release"/>
      </assemblyBinding>
   </runtime>   
</configuration>

1

프로젝트에서 "Microsoft.CodeDom.Providers.DotNetCompilerPlatform"및 "Microsoft.Net.Compilers"패키지를 업데이트해야합니다.


1

필자의 경우 4.5.2의 웹 응용 프로그램과 4.6.1의 참조 클래스 라이브러리가있을 때 오류가 발생했습니다. 웹 응용 프로그램을 4.5.2 버전으로 업데이트하면 오류가 사라졌습니다.


4.5.2 (기본값 VS 2017) 대신 잘못된 .Net 버전 (4.7.2 필요)에 대해 Umbraco 8을 설치할 때 실제로 같은 오류가 발생했습니다.
Bunkerbuster

1

내 응용 프로그램 풀 사용자가 ApplicationPoolIdentity로 설정 되었기 때문에이 오류가 발생했습니다. 폴더에 액세스 할 수있는 사용자 / 서비스 계정으로 변경했는데 오류가 사라졌습니다.


1

내 결과는 다음과 같습니다. 오늘 아침에도이 문제에 직면했습니다. 방금 현재 사용자를 응용 프로그램이 실행되는 응용 프로그램 풀에 추가했습니다.

단계 :

  1. IIS 열기

  2. 응용 프로그램 풀을 클릭하십시오

  3. 문제가 발생한 응용 프로그램 풀을 선택하십시오.

  4. 마우스 오른쪽 버튼 클릭-> 고급 설정

  5. identiy 옆에있는 세 개의 점 아이콘을 클릭하십시오

  6. 이제 맞춤 계정을 선택하십시오

  7. PC 사용자 이름과 비밀번호를 제공하십시오

  8. 저장

응용 프로그램을 새로 고칩니다. 작동합니다. dll에 액세스하는 데 보안 문제가있었습니다.


1

아래 명령에서 패키지 관리자 콘솔에서 패키지를 제거하십시오.

PM> 제거 패키지 Microsoft.CodeDom.Providers.DotNetCompilerPlatform

PM> 제거 패키지 Microsoft.Net.Compilers

너겟 관리자에서 다시 설치하십시오. 여기에 이미지 설명을 입력하십시오


1

최근에 Microsoft.CodeDom.Providers.DotNetCompilerPlatform패키지를 설치 또는 업데이트 한 경우 프로젝트에서 참조 된 해당 패키지 버전이 해당 패키지의 올바른 동일한 버전을 가리키는 지 다시 확인하십시오.

  • 에서는 ProjectName.csproj, 확인 <Import>용 태그 Microsoft.CodeDom.Providers.DotNetCompilerPlatform정확한 버전 점 존재하고.

  • 에서 ProjectName.csproj에 대한 <Reference>태그 Microsoft.CodeDom.Providers.DotNetCompilerPlatform가 있고 Include속성과 자식 모두에서 올바른 버전을 가리키는 지 확인하십시오 <HintPath>.

  • 이 프로젝트의에서 web.config의 보장 <system.codedom>태그가 존재하고, 그 자식 것을 <compiler>태그는 동일한 버전이 type속성을.

어떤 이유로, 내 경우에는 1.0.5 1.0.8에서이 패키지의 업그레이드는 발생 <Reference>에 태그를 .csproj그것 가지고 Include이전 버전 1.0 가리키는. 5 .0 (패키지 업그레이드 후 삭제), 다른 모든 것이 새롭고 정확한 버전 1.0을 가리 켰습니다. 8 .0.


1

프로젝트가 완전히 구축되었는지 확인하십시오!

'출력'탭을 클릭하고 다음과 같은 것이 없는지 확인하십시오.

========== 모두 다시 작성 : 14 개 성공, 1 개 실패, 0 건너 뛰기 =========

bin폴더를 열고 최신 상태인지 확인하십시오.

처음에는 무시했던 많은 타이프 스크립트 오류가 있었으며 빌드를 중단하고 DLL이 복사되지 않았 음을 잊었습니다.


1

CppCodeProvider 어셈블리에 대한 참조를 추가하십시오.


1

내 경우에는 내 웹 프로젝트가 제대로로드되지 않았고 (프로젝트를 사용할 수 없음을 나타냄) 관리자 모드에서 Visual Studio를 연 후 웹 프로젝트를 다시로드해야 모든 것이 잘 작동했습니다.


0

방금 같은 문제가 있었는데 프로젝트 위치를 옮기고 가상 디렉터리를 다시 만들어야하기 때문이었습니다.


0

우리가 만난 예외는 로컬이 아니라 원격 서버에 있었고 Azure CI는 패키지 폴더에서 읽었지만 위에서 언급 한 컴파일러 버전을 찾을 수 없었습니다.

이 문제를 해결하기 위해 프로젝트 파일을 다음과 같이 수정했습니다.

여기서는 환경 변수를 직접 참조하는 패키지를 참조하지 않습니다.

이로 인해 문제가 해결되었지만 "package.config"에서 직접 패키지를 사용하지 않고 팀 전체에서 버전 무결성을 유지하기 위해 별도의 폴더가 있습니다.


0

시작 명령에서 inetmgr로 이동 IIS 관리자 콘솔의 기본 웹 사이트에서 응용 프로그램 폴더를 선택하고 해당 폴더를 마우스 오른쪽 단추로 클릭 한 다음 응용 프로그램으로 변환을 사용하여 .asmx 파일을 실행합니다. 문제가 해결되었습니다.


0

BIN폴더가 완전히 업로드 되었는지 또는 파일에 없는지 확인하십시오 .


또한 asp.net에 동일한 문제가, 아주 새로운 직면하고있다
Prashant Pimpale

0

이 오류와 관련하여 시도했습니다.

  • 프로젝트 청소 및 재건
  • 프로젝트 언로드 및 재로드
  • 대상 프레임 워크 수정
  • 출력 경로 수정
  • GAC에 너겟 추가
  • 패키지를 삭제 uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform uninstall-package Microsoft.Net.Compilers하고 다시 설치하십시오.

이 모든 것이 유효한 솔루션 인 것처럼 보이지만 새로운 오류 만 생성 할 수있었습니다. 결국 특정 참조 / 덩어리가 누락되면 오류가 표시 될 수 있습니다.

필자의 경우 최근에 Microsoft Office를 다시 설치했으며 Microsoft.Office.Core와 같은 어셈블리를 참조하고있었습니다. 새로운 설치에 필요한 패키지가 포함되어 있지 않아서 솔루션이 제대로 구축되지 않았습니다.

Microsoft.Office를 참조 할 필요가없는 지점까지 코드를 다시 작성하여이 문제를 해결할 수 있었지만 필요한 패키지를 찾아서 설치하면 문제를 해결할 수있었습니다.

Visual Studio의 명확한 오류 메시지처럼 보입니다.


0

프로젝트에서 작업하고 있는데 지금 막 오류로 나타납니다. 컴퓨터 (또는 필자의 경우 서버)를 다시 부팅하면 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.