我已经创建了剃刀类库并添加了
- Typescript/tsconfig.json
- Typescript/scripts.ts
Microsoft.TypeScript.MSBuild
的程序包参考
当我在应用程序中使用ProjectReference引用项目时,它运行良好。
当我使用PackageReference引用它时,我会得到一个奇怪的构建错误:
tsc:error TS18003:内部版本:在配置文件"C:\Users/danie/.nuget/packages/mypackage/0.5.0/contentFiles/any/net6.0/Typescript/tsconfig.json"中找不到任何输入。指定的"包含"路径为"[quot;**/*quot;]","排除"路径为为"[quot;../wwwroot"].C:\Projects\app.csproj]
-
如何正确地将typescript包含在剃刀类库中,以便从中创建有效的nuget包?
-
为什么试图构建typescript的
dotnet build app.csproj
事件位于nuget包中?
这是我的MyPackage.csproj
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<PackageId>MyPackage</PackageId>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
</PropertyGroup>
<ItemGroup>
<SupportedPlatform Include="browser" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="6.0.0" />
<PackageReference Include="Microsoft.TypeScript.MSBuild" Version="4.5.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Folder Include="wwwroot" />
</ItemGroup>
</Project>
我通过将以下块添加到剃刀类库的csproj文件中来实现这一点。
<Target Name="RemoveTSConfigFileFromPackage" AfterTargets="CompileTypeScriptWithTSConfig">
<ItemGroup>
<Content Remove="**tsconfig.json" />
</ItemGroup>
</Target>
这将在构建nuget包时从该包中删除tsconfig.json,并避免使用项目中的构建错误。
有关更多信息,请参阅此线程:https://github.com/dotnet/aspnetcore/issues/2166