2017-10-12 4 views
0

J'ai un projet dans une solution Azure Service Fabric. Comment puis-je obtenir un chemin de fichier complet spécifique d'un fichier de contenu? Le fichier de contenu se trouve dans le même dossier que mon code source.Comment obtenir le chemin d'accès d'un fichier dans Azure Service Fabric

Ce que j'ai essayé:

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location 

Mais il se trouve:

C: \ SfDevCluster \ Data_App_Node_4 \ ABCXYZType_App126 \ ABCXYZPkg.Code.1.0.0 \ ABCXYZ.dll Ce fichier dans bin/debug dossier

+0

Alors, quel est le problème avec ce chemin? C'est le chemin complet. C'est là que les paquets sont déployés. Qu'est-ce que vous attendiez? –

+0

Désolé, je vais modifier la question pour plus de clarté. Le chemin que je reçois est dans le dossier bin/debug. Ce que je veux, c'est un fichier de contenu qui est dans le dossier du code source. –

Répondre

1

Pour obtenir l'emplacement des fichiers de contenu que vous pouvez utiliser:

var path = Path.Combine(
      FabricRuntime.GetActivationContext().GetCodePackageObject("Code").Path, 
      "Readme.txt"); 

ServiceEventSource.Current.ServiceMessage(this.Context, File.ReadAllText(path)); 

à condition que le fichier Readme.txt ait l'action de construction définie sur "Contenu" et que le paramètre Copier dans le répertoire de sortie soit défini sur autre chose que "ne pas copier".