发布Blazor Server应用时遇‘源文件实为目录’错误,如何修复?
解决Blazor Server发布时ICON-LICENSE目录冲突问题
可行的解决/规避方法:
1. 手动修正NuGet包的目录结构
找到冲突的NuGet包路径:C:\Users\xxxxx\.nuget\packages\blazorpropertygridcomponents\1.0.0\staticwebassets\css\open-iconic\
- 将
ICON-LICENSE目录内的同名无扩展名文件移动到上级open-iconic目录下 - 删除空的
ICON-LICENSE目录
这样发布时就不会把目录当成文件处理。
2. 在项目文件中排除冲突目录
编辑你的Blazor Server项目的.csproj文件,添加以下内容,让静态资源发布时跳过这个有问题的目录:
<ItemGroup> <StaticWebAsset Remove="css/open-iconic/ICON-LICENSE/**" /> </ItemGroup>
3. 修改发布配置文件排除冲突项
打开你提供的发布配置文件(.pubxml),在现有PropertyGroup节点后添加以下内容:
<ItemGroup> <ExcludeFromPackageFiles Include="**/ICON-LICENSE/**" /> </ItemGroup>
这样发布过程会自动跳过该目录的复制操作。
4. 反馈给NuGet包作者修复根源
这个问题属于blazorpropertygridcomponents包的静态资源结构错误(目录与文件同名导致MSBuild复制任务混淆),可以直接联系包作者提交问题,要求修正目录结构,从根源解决问题。
内容的提问来源于stack exchange,提问作者Kixoka
相关产品推荐
相关产品推荐

