Nano Hash - криптовалюты, майнинг, программирование

Изменение файла Typescript не распознается сборкой Visual Studio и считает, что все обновлено

Я использую TypeScript в проекте ASP.NET Core 3 (предварительная версия 5) с последней версией VS 2019 16.1.1 (tsc: 3.4).

Все мои файлы TypeScript компилируются нормально, когда я использую «Перестроить все», касаюсь любых файлов C # или касаюсь tsconfig.json.

Однако, когда я изменяю любой из моих файлов .ts, сохраняю, а затем «Сборка» VS 2019 говорит, что все обновлено, и ничего не делает.

Что я уже пробовал:

  • Я изменил порядок compileOnSave и compilerOptions, это не имеет значения
  • Пробовал ставить compileOnSave true или false не помогает. Кстати compileOnSave true ничего не делает, мне все равно, слишком много (я не жадный, мне достаточно компилировать на сборке :-), но может иметь диагностическое значение.

tsconfig.json:

"compileOnSave": false, // does not matter if true or false
"compilerOptions": {
  "module": "none",
  "noImplicitAny": true,
  "noEmitOnError": true,
  "sourceMap": true,
  "experimentalDecorators": true,
  "emitDecoratorMetadata": true,
  "target": "es2015",
  "lib": [
    "es2015",
    "es5",
    "dom"
  ],
  "outDir": "wwwroot/js/gen-ts",
  "typeRoots": [
    "./wwwroot/lib/@types"
  ]
},
"include": [
  "./Scripts"
]

  • 1.Что получится, если создать новый проект с аналогичной конфигурацией? 2. А вы проверили, является ли действие сборки ваших файлов .ts TypeScriptCompile? 3. Кроме того, вы можете попробовать установить для действия сборки tsconfig.json значение None, тогда свойства msbuild будут контролировать его поведение. У меня была такая же среда, как у вас (.net core3.0 preview5, typescript3.4), но на моей стороне она работает нормально. 29.05.2019
  • Привет, друг, какие-нибудь обновления по этой проблеме? 30.05.2019
  • Спасибо за предложения: 1) С новым проектом то же самое. 2) Если я установил TypeScriptCompile (изначально его не было), то сборка безоговорочно компилирует весь проект, независимо от того, были ли какие-либо изменения. 3) Если я установил None для tsconfig.json (изначально это было значение по умолчанию: Content), то мой проект не будет собираться с большим количеством ошибок машинописи (что понятно, некоторые настройки являются обязательными. Исключение tsconfig.json не вариант) 30.05.2019
  • Привет, друг, как вы упомянули the very same with brand new project, не могли бы вы поделиться решением с одним диском или github, чтобы я мог проверить его напрямую. У меня такая же среда разработчика, как и у вас, но изменения распознаются vs. Поэтому, возможно, мне нужно проверить, не является ли эта проблема результатом настроек vs или самих настроек проекта. 31.05.2019
  • Вот и все, см. диагностические комментарии в файле .csproj. github.com/g-pickardou/TypeScriptBuildDiagnostics 31.05.2019

Ответы:


1
  1. Закрыть Visual Studio
  2. Найдите файл yourprojectname.csproj
  3. Откройте yourprojectname.csproj в любом текстовом редакторе.
  4. Изменить узел <None Include="tsconfig.json" /> TO <Content Include="tsconfig.json" />

Надеюсь это поможет.

18.04.2020

2

Спасибо, что поделились своим проектом. Я воспроизвел аналогичную проблему на своей стороне.

Вот рекомендации, которые могут помочь:

1. Переместите файлы .ts из общей папки в папку Scripts, поскольку содержимое вашего tsconfig.json:

"include": [
  "./Scripts"

2.Go=>Tools=>Options=>Projects and Solutions=>.net core=>Up-To-Date Checks=>> убедитесь, что мы проверили файл Don't call msbuild if a project appears to be up-to-date.

3. Удалите папку bin и obj и пересоберите решение.

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

4.После этого вывод сборки будет отображать successful build большую часть времени, хотя мы не вносим изменений.

Но я думаю, что он просто отображает сообщение об успешной сборке (на самом деле он не создает эти файлы):

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

2. Если я внесу какие-либо изменения в файл xx.cs, будут восстановлены только .dll и некоторые файлы, но не файл xx.js.

Я думаю, что теперь поведение сборки на самом деле в основном нормальное, за исключением неправильного вывода сборки, который может ввести нас в заблуждение. Для этого аспекта вы можете сообщить об этой проблеме, выбрав меню «Справка» => «Отправить отзыв» => «Сообщить о проблеме», чтобы сообщить о ней.

Надеюсь, я ничего не понял :( Пожалуйста, не стесняйтесь исправлять меня, если что-то не так в моем ответе.

31.05.2019
  • Я сделал все, все еще не работает здесь. Кстати: общая папка находится под сценариями, но я переместил ее, как вы сказали, не звонить в msbuild уже было проверено. Если пакеты MsBuild находятся в csproj, то после модификации файла ts он бесконечно пересобирается для ctrl+b. Если пакет закомментирован, изменение файла .ts игнорируется. 31.05.2019
  • Извините за задержку. Но пока я не могу воспроизвести ту же проблему на своей стороне даже с проектом, которым вы поделились. Пробовали ли вы восстановить vs или перейти в Tools=>Import and Export Settings для сброса vs settings? 03.06.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..