RCL中新增cshtml文件自动被项目文件移除的原因及预防咨询
问题解答
代码由谁添加?
这段代码是Visual Studio针对Razor类库(RCL)的默认构建规则自动生成的。RCL的默认设计是将视图文件编译为嵌入式资源(EmbeddedResource),同时移除其Content属性——这么做是为了让视图文件嵌入到程序集内部,但副作用就是引用该RCL的其他项目无法直接识别并使用这些视图文件。
如何避免此类情况再次发生?
直接在RCL的.csproj文件中添加全局规则,覆盖默认的文件处理逻辑,让所有Views目录下的.cshtml文件默认以Content类型被识别:
<ItemGroup> <!-- 让Views下所有cshtml文件都作为Content类型 --> <Content Include="Views\**\*.cshtml" /> <!-- 移除默认的嵌入式资源标记 --> <EmbeddedResource Remove="Views\**\*.cshtml" /> </ItemGroup>
添加这段配置后,后续新增的.cshtml文件会自动套用这个规则,不会再生成那些导致问题的Content Remove和EmbeddedResource Include代码,彻底解决遗忘删除的麻烦。
内容的提问来源于stack exchange,提问作者cheny
相关产品推荐
相关产品推荐

