我有一个用 .Net5 编写的 ASP.NET MVC 应用程序。
这使用打字稿文件,我有 NuGet 包对以下内容的引用:
<PackageReference Include="BuildBundlerMinifier" Version="3.2.449" />
<PackageReference Include="Microsoft.TypeScript.MSBuild" Version="4.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Web.LibraryManager.Build" Version="2.1.113" />
在我的项目中,我有:
- 调用的文件夹
node-modules(未推送到 Azure Devops) - 捆绑配置.json
- gulpfile.js
- libman.json
- package.json (+ package-lock.json)
是package.json:
{
"version": "1.0.0",
"name": "asp.net",
"private": true,
"devDependencies": {
"gulp": "4.0.2",
"del": "5.1.0",
"@types/bootstrap": "4.5.0",
"@types/google.visualization": "0.0.53",
"@types/jquery": "3.5.1",
"@types/jqueryui": "1.12.13",
"@types/jquery.datatables": "1.10.36",
"@types/jquery.ui.datetimepicker": "0.3.29"
}
}
当我在 Visual Studio 2019(最新)中编译时,它编译得很好,一切都按预期工作。
然而,我确实进入了构建输出(信息):
项目打开时的包还原被禁用。更改项目属性中的 npm 包管理设置以在项目打开时启用恢复。
我找到了“在项目保存时恢复”设置并将其更改为true. 这将以下内容添加到我的 csproj 文件中:
<ProjectExtensions><VisualStudio><UserProperties appsettings_1qaf_1json__JsonSchema="https://gitpod.io/schemas/gitpod-schema.json" NpmRestoreOnProjectOpen="True" /></VisualStudio></ProjectExtensions>
我将它推送到 Azure DevOps,但是当代理构建它时(为了清楚起见,删除了一些步骤):
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'select'
- task: VSBuild@1
inputs:
solution: '$(solution)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
clean: true
我收到以下错误:
##[错误]MyApp\Scripts\MyTypeScript.ts(13,9):错误 TS2581:构建:找不到名称“$”。你需要为 jQuery 安装类型定义吗?试试
npm i @types/jquery。
因此,托管代理显然没有检索类型。我猜我需要调整我的 YAML 文件,但不确定如何...
