Không thể định vị được nhà cung cấp CodeDom loại Microsoft Microsoft.CodeDom.Providers.DotNetCompilerPl platform.CSharpCodeProvider tựa


159

Đó là một dự án WebApi sử dụng VS2015.

Bước tái sản xuất:

  1. Tạo một dự án WebApi trống
  2. Thay đổi đường dẫn đầu ra Build từ "bin \" thành "bin \ Debug \"
  3. Chạy

nhập mô tả hình ảnh ở đây

Mọi thứ đều hoạt động hoàn hảo cho đến khi tôi thay đổi đường dẫn Build Output từ "bin \" thành "bin \ Debug \" Trên thực tế, bất kỳ đường dẫn đầu ra nào ngoài "bin \" sẽ không hoạt động.

Thêm một điều nữa là, có một đường dẫn đầu ra khác đến bất cứ nơi nào sẽ hoạt động miễn là tôi để lại bản dựng trong "bin \".

Hãy giúp cung cấp giải pháp để giải quyết điều này. Tôi đoán rằng sẽ có vấn đề chi phí triển khai thực tế.


Tôi có thể hỏi tại sao bạn thay đổi đường dẫn đầu ra của ứng dụng web không? Cảm ơn bạn.
X-Mao

Ngoại lệ này xảy ra với tôi mỗi khi tôi làm mới một ứng dụng ASP.NET MVC đã chạy trước đó trong quá trình kết nối msbuild .
Nikolay Kostov

Điều tương tự cũng xảy ra với tôi. Nó bắt đầu sau khi tôi thêm tài liệu tham khảo vào một vài thư viện. Tôi đã sửa nó bằng cách gỡ cài đặt và cài đặt lại các thư viện. Và không biết tại sao điều này lại xảy ra bất cứ điều gì ..
Letie Techera

Câu trả lời:


127

Nếu dự án của bạn có các tham chiếu Roslyn và bạn đang triển khai nó trên máy chủ IIS , bạn có thể gặp các lỗi không mong muốn trên trang web vì nhiều nhà cung cấp dịch vụ lưu trữ vẫn chưa nâng cấp máy chủ của họ và do đó không hỗ trợ Roslyn.

Để giải quyết vấn đề này, bạn sẽ cần xóa trình biên dịch Roslyn khỏi mẫu dự án . Xóa Roslyn không nên ảnh hưởng đến chức năng mã của bạn. Nó hoạt động tốt với tôi và một số dự án khác (C # 4.5.2) mà tôi đã làm việc.

Thực hiện các bước sau:

  1. Xóa khỏi các Gói Nuget sau bằng dòng lệnh được hiển thị bên dưới ( hoặc bạn có thể sử dụng GUI của Trình quản lý gói Nuget bằng cách nhấp chuột phải vào Giải pháp dự án gốc và xóa chúng ).

    PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
    PM> Uninstall-package Microsoft.Net.Compilers
  2. Xóa mã sau khỏi tệp Web.Config của bạn và khởi động lại IIS . (Chỉ sử dụng phương pháp này nếu bước 1 không giải quyết được vấn đề của bạn. )

    <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
Tôi đã bị kẹt với "lỗi máy chủ trong ứng dụng '/' trong khoảng một ngày nay. Tôi đang biên dịch một ứng dụng Hello World đơn giản trong Visual Studio 2015 và triển khai nó lên máy chủ web và gặp lỗi này. Việc xóa các dòng <trình biên dịch> ở trên cũng làm cho vấn đề này biến mất. Tôi muốn biết làm thế nào điều này xảy ra trên trái đất và liệu có một giải pháp tốt hơn. Tôi thấy khá khó tin khi bạn không thể triển khai ứng dụng hello world theo cách này mà không gặp sự cố, giống như MS không thực hiện bất kỳ thử nghiệm nào: -)
user2728841

4
Để kích hoạt Roslyn, bạn có thể xem bài viết sau Kích hoạt Nền tảng trình biên dịch .NET (xông Roslyn xông) trong các ứng dụng ASP.NET Tại sao biên dịch Roslyn trong ASP.NET? Kích hoạt trình biên dịch Roslyn mới trong ứng dụng ASP.NET của bạn sẽ mang lại hai lợi ích chính: * Hỗ trợ các tính năng ngôn ngữ mới * Thời gian khởi động / tiền biên dịch ứng dụng được cải thiện tiềm năng
vibs2006

1
Khi tôi tạo một dự án web mới, nó đã đi kèm với các tài liệu tham khảo đó. Tại sao chúng được cài đặt theo mặc định, mục đích của chúng là gì? Theo hiểu biết của tôi Roslyn là trình biên dịch C # mới. Làm thế nào để loại bỏ nó không phá vỡ Visual Studio?
Jens Mander

@JensMander cả hai đều là thời gian tổng hợp. Trong IIS, chúng ta cần kích hoạt thủ công Roslyn Compiler. Vui lòng xem liên kết trong nhận xét trước đây của tôi về bài viết'Enabling the .NET Compiler Platform.
vibs2006

Tôi cũng gặp lỗi tương tự, cuối cùng đã cập nhật gói mới nhất cho Microsoft.CodeDom.Providers.DotNetCompilerPl platform đã giải quyết cho tôi.
Đỏ

48

Hãy cẩn thận làm theo lời khuyên của câu trả lời này. Trong khi nó giải quyết vấn đề trong tầm tay, nó có thể gây ra các vấn đề khác nhau vào một ngày sau đó.

Tôi đã có cùng một vấn đề. Rõ ràng trình biên dịch .NET không được tải vào GAC. Những gì tôi đã làm để giải quyết nó là:

Đầu tiên, trong loại bảng điều khiển trình quản lý gói:

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

Bây giờ, vì một số lý do, các quý ông tốt bụng ở Microsoft đã quyết định không cài đặt nó vào GAC cho chúng tôi. Bạn có thể thực hiện thủ công bằng cách mở Dấu nhắc lệnh dành cho nhà phát triển và nhập:

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

Phần kết luận

Microsoft cố gắng khuyến khích tất cả mọi người làm mọi thứ với nuget, điều này có thể ổn nếu không có lỗi thường xuyên xảy ra với hệ thống nuget. Cố gắng sử dụng cùng một dự án trên các giải pháp khác nhau, vô tình (hoặc không) cập nhật một trong số nhiều nugets mà nó sử dụng trên một trong số chúng, và nếu bạn không may mắn, bạn sẽ thấy ý của tôi khi bạn cố gắng xây dựng giải pháp khác. Mặt khác, việc đặt các tệp vào GAC cũng có thể gây ra các vấn đề trong tương lai vì mọi người có xu hướng quên những gì họ đặt ở đó và sau đó khi thiết lập môi trường mới, họ quên không bao gồm các tệp này. Một giải pháp khả thi khác là đặt các tệp vào một thư mục trung tâm cho các dll của bên thứ 3 (mặc dù việc gọi trình biên dịch của bên thứ 3 là rất lạ), điều này tạo ra các vấn đề về các tham chiếu bị hỏng khi thiết lập môi trường mới. Nếu bạn quyết định cài đặt dll vào GAC, thận trọng và nhớ rằng bạn đã làm như vậy. Nếu bạn không, hãy tải xuống nuget cho từng dự án một lần nữa và chịu tất cả các lỗi gây phiền nhiễu do nó gây ra (ít nhất là đã xảy ra khi cuối cùng tôi phát bệnh và chỉ đặt các tệp trong GAC). Cả hai cách tiếp cận có thể khiến bạn đau đầu và tạo ra vấn đề, đó chỉ là câu hỏi về vấn đề nào bạn muốn giải quyết. Microsoft khuyên bạn nên sử dụng hệ thống nuget và nói chung, nên lắng nghe họ hơn là một lập trình viên chưa biết trong SO, trừ khi bạn hoàn toàn chán ngấy hệ thống nuget và sử dụng để đối phó với GAC đủ lâu để nó trở thành một giải pháp thay thế tốt hơn cho bạn. tải xuống nuget cho mỗi dự án một lần nữa và chịu tất cả các lỗi gây phiền nhiễu do nó gây ra (ít nhất là đã xảy ra khi cuối cùng tôi phát bệnh và chỉ đặt các tệp trong GAC). Cả hai cách tiếp cận có thể khiến bạn đau đầu và tạo ra vấn đề, đó chỉ là câu hỏi về vấn đề nào bạn muốn giải quyết. Microsoft khuyên bạn nên sử dụng hệ thống nuget và nói chung, nên lắng nghe họ hơn là một lập trình viên chưa biết trong SO, trừ khi bạn hoàn toàn chán ngấy hệ thống nuget và sử dụng để đối phó với GAC đủ lâu để nó trở thành một giải pháp thay thế tốt hơn cho bạn. tải xuống nuget cho mỗi dự án một lần nữa và chịu tất cả các lỗi gây phiền nhiễu do nó gây ra (ít nhất là đã xảy ra khi cuối cùng tôi phát bệnh và chỉ đặt các tệp trong GAC). Cả hai cách tiếp cận có thể khiến bạn đau đầu và tạo ra vấn đề, đó chỉ là câu hỏi về vấn đề nào bạn muốn giải quyết. Microsoft khuyên bạn nên sử dụng hệ thống nuget và nói chung, nên lắng nghe họ hơn là một lập trình viên chưa biết trong SO, trừ khi bạn hoàn toàn chán ngấy hệ thống nuget và sử dụng để đối phó với GAC đủ lâu để nó trở thành một giải pháp thay thế tốt hơn cho bạn.


40
Nó không phải là trong GAC. Toàn bộ quan điểm đằng sau cách tiếp cận Nuget là để dự án của bạn sử dụng một phiên bản cụ thể của C # hoặc VB.NET mà không thay đổi bất cứ điều gì trên hệ thống máy chủ. Xem bài đăng này từ Damian Edwards của MSFT: blog.msdn.microsoft.com/webdev/2014/05/12/ Lời
Sudhanshu Mishra

29
Các hội đồng này KHÔNG thuộc về GAC, giai đoạn. Đặt chúng vào GAC sẽ dẫn đến đau đầu cuối cùng khi ai đó cần duy trì mã của bạn không thể xác định lý do tại sao trình biên dịch sai được sử dụng.
EKW

5
-1 cho nhận xét của Microsoft. Nó như thể nó là mát mẻ để làm điều đó những ngày này. BTW, nugets có rất nhiều lợi thế khiến chúng trở nên rất phổ biến mà bạn chỉ đơn giản là bỏ qua. Bây giờ hãy tưởng tượng về những gì các quý ông Microsoft sẽ nghĩ về điều này.
Fabio Milheiro

2
@YuvalPerelman Microsoft làm rất nhiều thứ phá hoại trong 3-4 năm qua (như làm mất ổn định Visual studio, sản xuất các sản phẩm chất lượng rất thấp). Đôi khi tôi thậm chí còn cầu nguyện rằng toàn bộ quản lý của bộ phận phát triển sẽ bị sa thải. Tuy nhiên, nó chắc chắn không phải là trường hợp đó!
Maris

2
GAC'ing sự phụ thuộc này là điều tuyệt vời nhất tôi từng thấy trong một thời gian.
Svend

31

Chỉ cần thêm gói nuget tiếp theo vào dự án của bạn - Microsoft.CodeDom.Providers.DotNetCompilerPlatform.

Có cùng một vấn đề.


Chỉ cần cẩn thận một chút; nó ghi đè lên 'Trình biên dịch' trong web.config, vì vậy hãy đảm bảo bạn lưu bất kỳ giá trị tùy chỉnh nào trước khi cài đặt.
Radderz

19

Tôi có cùng một vấn đề là ứng dụng của tôi đã hoạt động trong Vs2013 nhưng gặp lỗi sau khi cập nhật lên Vs2015.

  1. Trong Vs2015, nhấp chuột phải vào thư mục Tài liệu tham khảo của dự án, để mở Trình quản lý gói NuGet
  2. Trong tab Duyệt, tìm kiếm "DotNetCompilerPl Platform" và cài đặt "Microsoft.CodeDom.Providers.DotNetCompilerPl platform" lib

2
Cảm ơn vì mẹo bấm chuột phải vào thư mục Tài liệu tham khảo của dự án để mở trình quản lý gói
garyh

3
Hãy thử gỡ cài đặt nó trước, sau đó cài đặt lại trong NuGet. Điều đó làm việc cho tôi.
Matt

Bạn là một huyền thoại
Mo D Genesis

16

Tôi biết đó là một chủ đề cũ, nhưng tôi muốn chỉ ra vấn đề phiên bản có thể có của DotNetCompilerPl platform.dll, f. Ví dụ. sau khi cập nhật. Vui lòng kiểm tra, nếu tệp Web.config được tạo mới khác với tệp web.config được phát hành của bạn, đặc biệt là phần system.codedom. Trong trường hợp của tôi, đó là phiên bản thay đổi từ 1.0.7 sang 1.0.8. Dll mới đã được sao chép vào máy chủ, nhưng tôi đã không thay đổi web.config cũ (với một số cài đặt đặc biệt của máy chủ):

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

Sau khi tôi cập nhật hai dòng, lỗi biến mất.


1
Tôi có vấn đề với DotNetCompilerPlatform mỗi đơn thời gian để cập nhật nó.
LarryBud

2
Nếu bạn xóa thuộc tính phiên bản, cũng sẽ hoạt động và ngăn lỗi phát sinh lại trong lần cập nhật tiếp theo.
MiguelSlv

Cùng một vấn đề tôi vừa có ngoại trừ tôi phải cập nhật từ 2.0.0đến2.0.1
Rory McCrossan

12

Theo các bước repro của bạn, tôi giả định rằng việc thay đổi đường dẫn đầu ra trong thuộc tính của ứng dụng là thay đổi duy nhất của bạn sau khi bạn tạo ứng dụng. Điều duy nhất thay đổi này là nó bảo Visual Studio đưa các cụm đầu ra của MSBuild vào thư mục mới. Tuy nhiên, trong thời gian chạy, ASP.Net sẽ không biết rằng nó nên tải các cụm từ thư mục mới này thay vì thư mục \ bin.

Câu trả lời này cho thấy cách thay đổi thư mục đầu ra xây dựng của ứng dụng WebApi. Để có được cùng một lỗi chính xác được hiển thị trong bài đăng đó, bạn cần nhận xét toàn bộ phần <system.codedom> trong web.config. Và sau đó bạn có thể làm theo hướng dẫn để thay đổi đường dẫn đầu ra.

Sau khi bạn nhận được công việc của mình, bạn có thể bỏ qua phần <system.codedom>. Nếu bạn không sử dụng cú pháp mới C # 6 trong ứng dụng của mình, bạn có thể gỡ cài đặt Microsoft.CodeDom.Providers.DotNetCompilerPl platform khỏi ứng dụng của bạn; mặt khác, bạn có thể muốn thêm dòng lệnh sau trong sự kiện xây dựng sau,

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

Nhà cung cấp CodeDom mới luôn tìm thư mục "\ roslyn" trong \ bin. Lệnh trên hoạt động như một cách giải quyết và sao chép thư mục \ roslyn từ thư mục đầu ra mới của bạn sang \ bin.

Trong các thử nghiệm của tôi, công cụ xuất bản của Visual Studio, tuy nhiên, đã xuất bản các cụm đầu ra cho thư mục \ bin trong vị trí triển khai bất kể cài đặt đường dẫn đầu ra của tôi. Tôi đoán ứng dụng của bạn vẫn sẽ hoạt động khi triển khai thực tế.


10

Cách dễ dàng - Dự án> Quản lý gói NuGet ...> Duyệt (tab)> trong mục nhập tìm kiếm, thiết lập này: Microsoft.CodeDom.Providers.DotNetCompilerPl platform

Bạn có thể cài đặt hoặc cập nhật hoặc gỡ cài đặt và cài đặt trình biên dịch này

DotNetCompilerPl Platform


8

Một giải pháp khả thi khác:

Khởi động lại Visual Studio Instance với quyền quản trị viên

nhập mô tả hình ảnh ở đây


4

Nó dừng lại sau khi xuất bản trên máy chủ sản xuất. Lý do tại sao nó cho tôi thấy lỗi này là vì nó đã được triển khai vào một thư mục con . Trong IIS tôi đã nhấp chuột phải vào thư mục con và viết "Chuyển đổi sang ứng dụng" và sau đó nó hoạt động.


Chuyển đổi sang Ứng dụng là tất cả những gì tôi cần. (Đó là một dự án mới chưa được công bố trước đây.)
Patrick

Sử dụng thư mục con cũng là vấn đề của tôi, vì vậy tôi chuyển sang thư mục cơ sở và mọi thứ bắt đầu hoạt động.
J_L

4

Trong trường hợp của tôi, điều này xảy ra khi tôi thay đổi quyền của thư mục ứng dụng và tài khoản IIS_IUSRS đã bị xóa. Sau khi tôi thêm lại IIS_IUSRS (Trình quản lý IIS-> YourWebApp -> Chỉnh sửa quyền -> Thêm IIS_IUSRS) vào thư mục ứng dụng và nó đã hoạt động.


Tôi đã thêm quyền IUSR, nhưng nó không đầy đủ. Tôi đã phải thêm "IIS_IUSRS" và sau đó nó hoạt động.
zacharydl

3

Đây là cách tôi giải quyết nó:

  1. Đã xóa binthư mục trong thư mục dự án.
  2. Bấm vào Build Solution. Trong VS2017 (Chạy với tư cách Quản trị viên)> Xây dựng> Giải pháp xây dựng .

3

Nếu bạn đang sử dụng git, có lẽ bạn đang bỏ qua các dll trong cam kết


2

Tôi đã có một số dự án trong giải pháp và dự án web (vấn đề gây ra lỗi này) không được đặt làm dự án StartUp. Tôi đặt dự án web này là dự án StartUp và nhấp vào mục menu "Gỡ lỗi" -> "Bắt đầu gỡ lỗi" và nó đã hoạt động. Tôi đã ngừng gỡ lỗi và sau đó thử lại và bây giờ nó đã hoạt động trở lại. Kỳ dị.


2

Sau đó, vấn đề trở lại. Tôi gỡ cài đặt cả hai Microsoft.CodeDom.Providers.DotNetCompilerPlatformUninstall-package Microsoft.Net.Compilersnhưng không có sự giúp đỡ. Sau đó cài đặt - không có trợ giúp. Dự án được làm sạch và xây dựng không có sự giúp đỡ. Máy chủ khởi động lại không có trợ giúp. Sau đó, tôi nhận thấy dự án không cần phải là phiên bản mới nhất hiện tại là 1.0.5 mà là 1.0.3 vì đó là lỗi không thể tải phiên bản 1.0.3. Vì vậy, tôi đã cài đặt phiên bản dll đó và bây giờ nó hoạt động.


1

ASP.NET không tìm kiếm bin/debughoặc bất kỳ thư mục con nào trong bin cho các cụm như các loại ứng dụng khác làm. Bạn có thể hướng dẫn thời gian chạy để tìm ở một nơi khác bằng cách sử dụng cấu hình sau:

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

1

Bạn nên cập nhật các gói "Microsoft.CodeDom.Providers.DotNetCompilerPl platform" và "Microsoft.Net.Compilers" trong dự án của bạn.


1

Trong trường hợp của tôi, tôi đã gặp lỗi khi tôi có Ứng dụng web của mình trong 4.5.2 và các tham chiếu lớp tham chiếu trong 4.6.1. Khi tôi cập nhật Ứng dụng web lên phiên bản 4.5.2, lỗi đã biến mất.


Thực sự đã có lỗi tương tự khi cài đặt Umbraco 8, đối với phiên bản .Net sai (cần 4.7.2) thay vì 4.5.2 (mặc định VS 2017)
Bunkerbuster

1

Tôi đã gặp lỗi này vì người dùng nhóm ứng dụng của tôi đã được đặt thành ApplicationPoolIdentity. Tôi đã thay đổi nó thành một tài khoản người dùng / dịch vụ có quyền truy cập vào thư mục và lỗi đã biến mất.


1

Dưới đây là những phát hiện của tôi. Tôi cũng phải đối mặt với vấn đề này sáng nay. Tôi vừa thêm người dùng hiện tại của mình vào nhóm ứng dụng đang chạy ứng dụng nào.

Các bước:

  1. Mở IIS

  2. Bấm vào nhóm ứng dụng

  3. Chọn nhóm ứng dụng của bạn mà bạn đang gặp vấn đề

  4. Nhấp chuột phải -> cài đặt nâng cao

  5. Nhấp vào biểu tượng ba chấm bên cạnh nhận dạng

  6. Bây giờ chọn tài khoản tùy chỉnh

  7. Cung cấp tên người dùng và mật khẩu PC của bạn

  8. Tiết kiệm

Làm mới ứng dụng của bạn .. và nó sẽ bắt đầu hoạt động. Có một số vấn đề bảo mật để truy cập dll.


1

chỉ cần gỡ cài đặt gói từ bảng điều khiển quản lý gói từ lệnh bên dưới

PM> Gỡ cài đặt gói Microsoft.CodeDom.Providers.DotNetCompilerPl platform

PM> Gỡ cài đặt gói Microsoft.Net.Compilers

và sau đó cài đặt lại từ trình quản lý nuget nhập mô tả hình ảnh ở đây


1

Nếu gần đây bạn đã cài đặt hoặc cập nhật Microsoft.CodeDom.Providers.DotNetCompilerPlatformgói, hãy kiểm tra kỹ xem các phiên bản của gói đó được tham chiếu trong dự án của bạn có đúng với phiên bản chính xác của gói đó không:

  • Trong ProjectName.csproj, đảm bảo rằng một <Import>thẻ cho Microsoft.CodeDom.Providers.DotNetCompilerPlatformhiện diện và trỏ đến phiên bản chính xác.

  • Trong ProjectName.csproj, đảm bảo rằng một <Reference>thẻ cho Microsoft.CodeDom.Providers.DotNetCompilerPlatformcó mặt và trỏ đến phiên bản chính xác, cả trong Includethuộc tính và con <HintPath>.

  • Trong dự án đó web.config, đảm bảo rằng <system.codedom>thẻ có mặt và các <compiler>thẻ con của nó có cùng phiên bản trong typethuộc tính của chúng .

Vì một số lý do, trong trường hợp của tôi, việc nâng cấp gói này từ 1.0.5 lên 1.0.8 đã khiến <Reference>thẻ trong đó .csprojđược Includetrỏ đến phiên bản cũ 1.0. 5 .0 (mà tôi đã xóa sau khi nâng cấp gói), nhưng mọi thứ khác đều trỏ đến phiên bản 1.0 mới và chính xác. 8 .0.


1

Hãy chắc chắn rằng dự án của bạn đã được xây dựng đầy đủ!

Nhấp vào tab 'Đầu ra' và đảm bảo bạn không có thứ gì đó như:

========== Xây dựng lại tất cả: 14 thành công, 1 thất bại, 0 bỏ qua =========

Và mở của bạn bin thư mục và kiểm tra xem nó đã được cập nhật chưa.

Tôi đã có một loạt các lỗi bản thảo mà ban đầu tôi bỏ qua, quên rằng chúng đã phá vỡ bản dựng và dẫn đến không có DLL nào được sao chép.


1

Thêm một tham chiếu đến hội đồng CppCodeProvider.


1

Trong trường hợp của tôi, dự án web của tôi không được tải đúng cách (nó đang hiển thị dự án không khả dụng) thì tôi phải tải lại dự án web của mình sau khi mở studio hình ảnh của tôi ở chế độ quản trị viên, mọi thứ đều hoạt động tốt.


0

Tôi chỉ gặp vấn đề tương tự và đó là vì tôi đã di chuyển vị trí dự án và đơn giản là cần thiết để tạo lại thư mục ảo.


0

Ngoại lệ mà chúng tôi gặp phải không phải trên máy cục bộ mà trên máy chủ từ xa, Azure CI đã đọc nó từ thư mục gói nhưng không tìm thấy phiên bản trình biên dịch được đề cập ở trên.

Để khắc phục điều này, chúng tôi đã sửa đổi tệp dự án để làm cho nó giống như

Nó không tham chiếu bất kỳ gói nào ở đây tham chiếu trực tiếp các biến môi trường.

Điều này đã khắc phục sự cố, tuy nhiên trong các trường hợp của chúng tôi, chúng tôi không sử dụng các gói trực tiếp từ "gói.config" thay vào đó chúng tôi có một thư mục riêng để duy trì tính toàn vẹn phiên bản giữa các nhóm.


0

Đi đến inetmgr từ lệnh start Trong bảng điều khiển quản lý IIS, chọn thư mục ứng dụng trong Trang web mặc định, nhấp chuột phải vào thư mục đó, sau đó Chuyển đổi sang Ứng dụng Chạy tệp .asmx bằng cách Kích hoạt giải quyết vấn đề


0

Kiểm tra xem BINthư mục được tải lên hoàn toàn hay thiếu trong các tập tin.


Tôi cũng đang đối mặt với cùng một vấn đề, khá mới đối với asp.net
Prashant Pimpale

0

Về lỗi này tôi đã thử:

  • Vệ sinh và xây dựng lại dự án
  • Dỡ bỏ và tải lại dự án
  • Sửa đổi khung mục tiêu
  • Sửa đổi đường dẫn đầu ra
  • Thêm cốm vào GAC
  • Xóa các gói uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform uninstall-package Microsoft.Net.Compilersvà cài đặt lại.

Mặc dù tất cả những điều này dường như là giải pháp hợp lệ, tôi chỉ có thể tạo ra các lỗi mới và cuối cùng, lỗi dường như có thể hiển thị khi thiếu các tham chiếu / nugets nhất định.

Trong trường hợp của tôi, gần đây tôi đã cài đặt lại Microsoft Office và đang tham khảo các hội đồng như Microsoft.Office.Core. Cài đặt mới dường như không bao gồm các gói cần thiết, khiến cho giải pháp của tôi không thể xây dựng chính xác.

Tôi đã có thể giải quyết vấn đề này bằng cách làm lại mã của mình đến mức tôi không cần phải tham khảo Microsoft.Office, nhưng có thể giải quyết nó bằng cách tra cứu các gói cần thiết và cài đặt chúng cho phù hợp.

Có vẻ như một thông báo lỗi không rõ ràng từ Visual Studio.


0

Nếu bạn đang làm việc trên một dự án và điều này vừa xuất hiện là một lỗi. REBOOT máy tính của bạn (hoặc máy chủ trong trường hợp của tôi) điều này đã khắc phục sự cố cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.