诡异的Visual Studio编译错误,非代码级编译错误!

使用Visual Studio 2022 17.5.1版本编译项目的时候,意外发现时不时会出现System.ArgumentException: 路径中具有非法字符的编译错误。但后续编译一切正常,重启Visual Studio后,发现有的项目无法正常加载了!

除了这种情况以外,还会提示其它错误:“Persistence = ProjectFileWithInterceptionViaSnapshot”没有项目属性提供程序。

通过检查代码,一路狂飙,看着都没有啥毛病啊!

最终在对比文件修改区别,逐个排除最终发现:csproj文件经过xml格式化工具格式化过,格式化以后,visual studio在解析的时候不能正常工作,导致内部出现异常,从而引发奇奇怪怪的问题。

最终发现是因为格式化的过程中,导致标签内容出现了较多不需要的空格和换行。如:

        <Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\win-x86\native\CefSharp.dll">
            <CopyToOutputDirectory>
                PreserveNewest
            </CopyToOutputDirectory>
            <Link>
                runtimes\win-x86\native\CefSharp.dll
            </Link>
            <Visible>
                false
            </Visible>
        </Content>

修正后

        <Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\win-x86\native\CefSharp.dll">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
            <Link>runtimes\win-x86\native\CefSharp.dll</Link>
            <Visible>false</Visible>
        </Content>

按修正后的重新编译,一切恢复正常!

以上问题尚不确定到底是编译器的BUG,还是什么原因,如果有遇上,可以尝试通过上述方法尝试解决!

微信公众号:

承哥技术交流小作坊

欢迎转载分享,如若转载,请标注署名。


本文会经常更新,请阅读原文: https://huchengv5.gitee.io//post/NET-%E8%AF%A1%E5%BC%82%E7%9A%84Visual-Studio%E7%BC%96%E8%AF%91%E9%94%99%E8%AF%AF.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名胡承(包含链接: https://huchengv5.gitee.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系