2010-11-12 4 views
2

Je veux avoir quelque chose comme:En utilisant Visual Studio, puis-je obtenir le nom de l'ordinateur au moment de la compilation?

let COMP_NAME = %some_type_of_flag% 

Alors qu'au moment de la compilation, cela a changé pour

let COMP_NAME = "MyComputerName" 

Edit: Je vois que ma question était incomplète. Ceci est une application Silverlight. Il semble que l'environnement n'a pas MachineName. J'utilise f #. Editer: J'utilise Visual Studio 2010 et le code derrière est en f # (Do not ask). La raison pour laquelle je veux faire cela est que dans notre environnement de développement, nous exécutons le serveur sur la machine locale. Lorsque quelqu'un extrait le code, il doit entrer son nom dans le code. L'utilisation de 'localhost' fonctionne lorsque vous accédez localement à l'application, cela ne fonctionnera évidemment pas si vous y accédez depuis une autre machine. Donc la solution doit être au moment de la construction.

Je ne suis pas sûr du compilateur que j'utilise, quel que soit le compilateur f # par défaut dans VS2010.

+1

Dans quel lanugage? – SLaks

+1

En outre, pourquoi? Qu'est-ce que vous essayez d'accomplir? – Stu

+0

Cela ressemble à un cas d'une étape de pré-construction faisant quelque chose à un fichier de code inclus. – sisve

Répondre

-1

nous COMP_NAME = Environment.MachineName

+1

C'est l'exécution, qui pourrait être une machine différente de celle de la compilation. – jason

3

Je ne sais pas d'une façon de le faire plus simple que ce qui suit. Vous souhaitez configurer une étape de pré-construction (Projet -> Propriétés -> Construire des événements -> Ligne de commande d'un événement de pré-construction).

Ici, vous pouvez configurer un programme qui criera dans vos fichiers source et remplacera un jeton spécifique (%MachineName%) avec la valeur Environment.MachineName. C'est un programme que vous devrez écrire séparément.

-1

J'ai trouvé la solution que je recherchais, et il ne reçoit pas le nom de l'ordinateur au moment de la compilation, il obtient l'hôte source à l'exécution.

let host = Application.Current.Host.Source.Host 
let uri = new Uri("https://" + host) 
+0

Cela peut être une solution à votre problème, mais ce n'est pas une réponse à votre question. Cela vous donne la machine hébergeant votre application (silverlight), pas celle sur laquelle elle a été compilée. – mbx

Questions connexes