当我使用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

适当的是,它以“如果你仍然认为这是一个错误”....

你是否重现了错误,并且是一个现实的情景?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top