używam wyrażenia typu:Jak należy używać usługi F # SqlDataConnection TypeProvider z plikiem App.Config?
type dbSchema = SqlDataConnection<ConnectionStringName="X1", ConfigFile="App.config">
Działa to doskonale w czasie kompilacji (mam pełny dostęp do wszystkich typów dB), ale nie w czasie wykonywania. Zakładam, że dzieje się tak dlatego, że plik konfiguracyjny wygenerowany w katalogu aplikacji konsolowej bin
został nazwany czymś innym, na przykład MyAppName.exe.config
, dlatego też nie znaleziono pliku .
Oczywiście, dla ASP.NET MVC typu aplikacji, która korzysta web.config
, nie ma problemu, ponieważ nazwy plików kompilacji i czasu wykonywania konfiguracyjne są takie same.
Na szczęście umieszczenie duplikatu App.config
w katalogu bin
rozwiązuje problem, ale czy to jest to, co powinniśmy zrobić? jakieś pomysły?
to jest sposób w jaki 'App.config' działa. Najpierw jest poszukiwany zestaw wywołań najwyższego poziomu. Aby uzyskać szczegółowe informacje, patrz [this Q] (http://stackoverflow.com/questions/3569336/visual-c-sharp-app-config-file-for-a-referenced- assembly). Zauważ również, że 'App.config' jest faktycznie przemianowany na' MyAppName.exe.config' podczas budowania czasu i możesz potrzebować odpowiedniego wywołania swojego nowo utworzonego. – bytebuster
@bytebuster To z pewnością prawda. Jednak dostawca typu SqlDataConnection nie wydaje się być tego świadomy i nadal nalega, aby plik "app.config" był tam, nawet jeśli 'ConfigFile' nie jest jawnie określony (w takim przypadku app.config powinien być użyty jako domyślnie.) – afrischke
Myślałem o tym sam. Może znajdziesz to pytanie i odpowiedź pomocne: http://stackoverflow.com/a/19459561/952606 – spacedoom