Атрибут CLSCompliant для основных представлений ASP.Net - PullRequest
0 голосов
/ 28 июня 2018

Я получаю предупреждение компилятора о моем проекте ASP.Net Core (2.1):

предупреждение CA1014: Пометить сборки с CLSCompliant

Это предупреждение выдается Анализатором CodeAnalysis (я использую версию 1.1.0-beta008).

Я уже добавил файл "AssemblyInfo.cs" в тот же проект, содержащий эту единственную строку кода:

[assembly: System.CLSCompliant(false)]

Тем не менее, я вижу, что для этого проекта сгенерировано ДВА DLL: ожидаемый {projectname}.dll, но также {projectname}.Views.dll.

Используя ILSpy, я могу подтвердить, что атрибут применяется к {projectname} .dll, но не применяется к {projectname} .Views.dll - что, несомненно, вызывает это предупреждение.

Добавление того же самого AssemblyInfo.cs в папку Views приводит к ошибке: CS0579 Дублируйте атрибут «System.CLSCompliant». Очевидно, что DLL-библиотека Views не содержит «все в папке Views», а содержит только скомпилированные файлы cshtml.

Добавление этого атрибута (например) в _ViewStart.cshtml не приводит к допустимому синтаксису.

Так как я могу применить этот атрибут специально к представлениям?

Обратите внимание, что я могу удалить предупреждение, понизив строгость правила CA1014 (Зависимости> Анализаторы> Microsoft.CodeQuality.Analyzers), но я бы скорее "решил" это, чем "скрыл" его.

1 Ответ

0 голосов
/ 13 июля 2018

В ответ на проблему github добавьте следующий фрагмент в файл проекта (.csproj):

<ItemGroup>
  <RazorCompile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>

для включения указанного файла в сборку Views. Вы можете ссылаться на любой файл, конечно, убедитесь, что путь правильный (относительно корня проекта).

См. документацию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...