Pregunta

Cuando yo uso la Aplicación.UserAppDataPath para llegar a configs, tengo un ArgumentException "caracteres Ilegales en el camino".
Según Microsoft es no es un bug, sino una característica;

La única manera de cómo usted puede tener un carácter ilícito en FileVersionInfo.ProductVersion (y por lo tanto en la Aplicación.ProductVersion y Aplicación.UserAppDataPath) es cuando se tiene AssemblyFileVersion en la asamblea.El valor que va a AssemblyFileVersion se copia en el de Win32 recursos textuales y reemplaza el valor que se le pasa AssemblyVersion.Este comportamiento es por diseño.

Así por comentar [assembly:AssemblyFileVersion("...")] en AssemblyInfo.cs se podría resolver esta excepción.

El problema es:Estoy escribiendo algo .dll con controles de formularios windows forms.Más fácil de diseño para conseguir este camino sería el uso de la Aplicación.UserAppDataPath.Pero si de la Aplicación.UserAppDataPath se utiliza, a continuación, los desarrolladores que utilizan esta biblioteca no tiene AssemblyFileVersion para su .los archivos exe.(Mientras AssemblyFileVersion es en el AssemblyInfo.cs por defecto)

También he podido encontrar ninguna información por parte de Microsoft de que el uso de AssemblyFileVersion debe frenar mi aplicación y alguien no debería usar.Así que, en realidad, no se puede pedir a partir de este los usuarios de la biblioteca.

Hay una razón o lógica en este tipo de extraña situación?¿Qué es un mejor trabajo para obtener la Aplicación.UserAppDataPath ruta sin problemas?

Mientras he AssemblyFileVersion y Aplicación.UserAppDataPath sería produce la excepción, la aplicación funciona y que podría conseguir este camino a través de

string path = ConfigurationManager.OpenExeConfiguration(
            ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;

Los archivos de configuración están allí y no tienen problemas.Pero, sin duda, es una forma fea.

¿Fue útil?

Solución

Si he leído que después de Conectar correctamente tienes que usar AssemblyFileVersion con un ilegales char ('*').

Adecuadamente termina con "Si usted todavía cree que esto es un error" ....

Hizo de reproducir el error, y fue que un escenario realista?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top