2017-04-25 1 views
2

Selon référence U-SQL à propos de l'instruction CREATE ASSEMBLY: https://msdn.microsoft.com/en-us/library/azure/mt763293.aspxcréer des assemblages avec des fichiers supplémentaires pour stocker des fichiers de données dans un chemin par rapport à l'ensemble référencé

Lorsque nous intégrons des fichiers supplémentaires avec l'ensemble du magasin, nous peut certainement définir un chemin relatif pour chaque fichier dans le magasin auquel nous faisons référence, cependant, que se passe-t-il si nous voulons le localiser dans un chemin relatif que d'autres DLL attendent pendant l'exécution.

Exemple: CREATE ASSEMBLY BusinessLogic de @ "/ Path1/BusinessLogic.dll" AVEC ADDITIONAL_FILES = ( @ "/ Path1/Path2/dataFile.xml", )

Maintenant, alors que BusinessLogic.dll est en cours d'exécution, il s'attend à ce que dataFile.xml soit dans le répertoire relatif/Path2, qui n'est pas préservé dans l'exécution (sachant que du débogage local), et donc l'exécution entière échoue, comment préserver ce chemin relatif pour les fichiers supplémentaires?

Répondre

1

Comme la documentation que vous faites référence à l'explique, les fichiers supplémentaires sont placés dans le répertoire de travail à l'emplacement sans répertoire en ce moment:

Cette clause spécifie éventuellement le nom qui est utilisé pour le fichier supplémentaire , lorsqu'il est placé dans le répertoire de travail d'exécution. La chaîne littérale doit être un nom de fichier valide (et ne pas contenir un chemin d'accès) ou une erreur est générée. Notez que cela doit être le nom du fichier que l'assembly principal utilisera pour faire référence au fichier ou le code de l'assembly ne parviendra pas à trouver le fichier lors de l'exécution et déclencher une erreur.

Les structures de dossiers ne sont donc pas conservées. Que pouvez-vous faire?

  1. S'il vous plaît file a feature request pour soutenir les chemins relatifs à la clause de fichier AS supplémentaire.

  2. Vous pouvez déployer les fichiers dans un fichier ZIP, puis les décompresser à l'intérieur de votre assemblage personnalisé pour les placer au bon endroit.