[visual-studio] Roslyn없이 웹 사이트 게시

Visual Studio 2015 및 .NET 4.5.1을 사용하여 웹 응용 프로그램을 만들려고합니다. 웹 사이트를 게시하면 Visual Studio에서 roslyn.

여기에 이미지 설명 입력

나는 그것이 코드를 즉시 컴파일하는 데 사용된다는 것을 알고 있지만 불행히도 내 호스팅 공급자는 서버에서 컴파일러를 실행할 수 없습니다.

roslyn이전 버전의 Visual Studio와 달리 웹 사이트를 게시하는 방법은 무엇입니까?

편집 : 내 웹 사이트에 액세스하려고 할 때이 오류가 발생했습니다.

여기에 이미지 설명 입력

IIS가 실행을 시도하는 것 roslyn\csc.exe같지만 내 사용자 계정에이를 수행 할 권한이 없습니다. 이전 버전의 Visual Studio에서는이 오류가 표시되지 않습니다.



답변

나는 방금 같은 문제에 직면했습니다. 새 웹 프로젝트를 만들 때 두 개의 nuget 패키지가 프로젝트에 자동으로 추가됩니다. 제거하면 문제가 해결됩니다. 패키지 이름은 ” Microsoft.CodeDom.Providers.DotNetCompilerPlatform “및 ” Microsoft.Net.Compilers “입니다.


답변

나는 같은 문제가 있었다. 여기 에서 단계를 따랐습니다 . 원래:

  1. 패키지 제거

    Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform <Your Web API project name>
    
  2. 게시 프로필 설정에서 “미리 컴파일 된 사이트를 업데이트 할 수 있도록 허용”을 선택 취소합니다. 설정> 게시 중 사전 컴파일> 구성에서 찾을 수 있습니다.


답변

내가 마주하는 똑같은 발행물을 수색 한 뒤 방금 여기에 왔습니다. 나는 위의 대답을 읽었습니다.

설명 할 좋은 기사 는 다음과 같습니다 .

  1. 게시 코드에이 exe와 개발 환경이있는 이유는 무엇입니까?
  2. 이점은 무엇이며 제거하는 방법은 무엇입니까?

이것은 또한이 exe의 역사에 대한 아주 좋은 기사입니다.


답변

수많은 노력 끝에 …. 그리고이 웹 사이트 에 따르면 . /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=falseMSBuild에서 web.config를 변환 하는 데 사용할 수 있으며 여기에는 빌드에 roslyn 컴파일러도 포함됩니다. 출력은 Visual Studio에서 파일 시스템에 게시하여 얻은 것과 동일합니다.


답변

이 문제에 대한 roslyn 저장소에 공개 버그 가 있습니다 .

제 경우에는 dll Microsoft.CodeDom.Providers.DotNetCompilerPlatform을 버전 1.0.6에서 1.0.5.


답변

2016 년 9 월에 기존 ASP.NET 프로그램을 인수했을 때 동일한 문제가 발생했습니다. Kemal이 언급 한 두 가지 컴파일러 패키지의 여러 버전이 솔루션의 다른 프로젝트에 설치되어 있음을 발견했습니다.

그래서 먼저 그것들을 동일하게 업데이트했습니다. VS는이 시나리오에서 업데이트를 사용할 수 있다고 말하지 않습니다 (또는 놓쳤을 수도 있습니까?)

그런 다음 패키지를 제대로 정리하려면 VS2015를 다시 시작해야했습니다.


답변