application.userappdatapathtrange行为
-
09-09-2020 - |
题
当我使用application.userappdatapath来获取配置时,我在路径中有一个ArgumentException“非法字符”。
根据Microsoft IT 不是一个错误,而是一个特征;
如何在FileVersionInfo.ProductVersion中获取非法字符的唯一方法将装配FileVersion的值复制到Win32资源逐字并覆盖您传递给汇编的值。这种行为是通过设计。
所以通过评论[汇编:组装中的汇编文件(“...”)]可以解决这个例外。
问题是: 我正在用Winforms控件编写一些.dll。最简单的设计来获得此路径将是使用application.userappdatapath。但如果使用aupplication.userappdatapath,那么使用此库的开发人员不能为其.exe文件具有汇编文件。 (默认情况下,汇集文件中的汇编在汇编中)
我也找不到Microsoft的任何信息,即使用汇编Fileversion应该制动我的应用程序,有人不应该使用它。所以我实际上,不能从这个库用户询问。
在这种奇怪的情况下有原因或逻辑吗? 什么是更好的工作来获取application.userappdatapath路径,没有这样的问题?
虽然我有汇编文件和application.userappdatapath会抛出异常,应用程序工作,我可以通过
获得这条路径string path = ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;
.
配置文件在那里,没有问题。但是,当然,这是一种丑陋的方式。
解决方案
如果我在连接上读取该帖子,则必须使用非法char('*')的AssemblyFileVersion
。
适当的是,它以“如果你仍然认为这是一个错误”....
你是否重现了错误,并且是一个现实的情景?
不隶属于 StackOverflow