2010-06-26 7 views
0

J'ai une application ClickOnce qui sera utilisée par deux clients (plusieurs utilisateurs chacun). L'application se connecte à MSSQL/MySQL. Comment puis-je leur fournir différents connectionString avec un déploiement ClickOnce? Je voudrais vraiment garder les choses (autant que possible) simples de ma part (et avoir un seul point de publication), mais comment puis-je leur donner des paramètres différents? Une idée est de ne pas leur donner connectionString, et de permettre à l'application de choisir le serveur, le db et le nom d'utilisateur/mot de passe, puis de l'enregistrer dans userSettings.ClickOnce et connectionStrings

Une autre idée (que je ne suis pas très friand de) est d'intercepter sur la demande http IIS pour le fichier app.exe.config.deploy et de le réécrire avec les paramètres appropriés pour chaque client.

Cela peut-il être fait, err, humainement?

+0

Si vous utilisez l'idée d'interception, comment allez-vous différencier les clients? –

+0

Hm. Je n'y ai pas encore pensé. Je préfère ne pas y penser du tout :) – Vnuk

+0

Vous pouvez différencier les clients en utilisant un paramètre de requête. Une question cependant - quand vous dites qu'il y aura plusieurs utilisateurs, vous voulez dire juste pour chaque client, n'est-ce pas? Vous ne voulez pas dire sur la même machine avec un compte d'utilisateur? – RobinDotNet

Répondre

0

pour commencer, tout le monde en utilisant ClickOnc e devrait suivre le blog de RobinDotNet - http://robindotnet.wordpress.com

J'ai trouvé le lien vers How to: Retrieve Query String Information in a ClickOnce Application sur MSDN.

Chacun de mes clients va installer l'application via un lien vers .application qui contiendra leur identifiant (probablement GUID). Au premier lancement, je vais enregistrer cet identifiant dans les paramètres. Je vais créer un service Web qui conservera les paramètres pour tous les clients et les suivra via leur identifiant.

+0

Je suis content que vous ayez trouvé cela utile; C'est la direction que j'allais suivre avec le commentaire ci-dessus. Et merci pour le shoutout! – RobinDotNet

0

Puisque vous êtes 'service Web' à base de toute façon, je propose ce qui suit:

  • donner à chaque groupe d'utilisateurs (chaque client) un code PIN unique en lenghth de 4 nombres de caractères alphanumériques
  • create table de recherche à côté serveur pour PIN -> paramètre traduction
  • lors de la première mise en service de l'application, demandez PIN et chercher les paramètres appropriés, les stocker localement