Próbuję również dostosować położenie instancji i znalazłem rozwiązanie. W poprzednich postach wydawało się, że domyślnie jest to "% LOCALAPPDATA% \ Microsoft \ Microsoft SQL Server Local DB \ Instances". Po niektórych eksperymentach wydaje się, że narzędzie wiersza poleceń SQLLocabDB używa zmiennej środowiskowej% USERPROFILE% (zamiast% LOCALAPPDATA%), aby znaleźć tę lokalizację.
Następujące pracował dla mnie (przy SQLLocalDB z wiersza poleceń):
C:\Users\dan.smith>echo %USERPROFILE%
C:\Users\dan.smith
C:\Users\dan.smith>set USERPROFILE=c:\temp
C:\Users\dan.smith>echo %USERPROFILE%
c:\temp
C:\Users\dan.smith>mkdir c:\temp\AppData\Local
C:\Users\dan.smith>sqllocaldb create test
LocalDB instance "test" created with version 13.0.1100.286.
C:\Users\dan.smith>cd C:\temp\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\test
C:\temp\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\test>dir /w
Volume in drive C has no label.
Volume Serial Number is 4A71-7A6F
Directory of C:\temp\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\test
[.] [..]
error.log error1.log
log.trc master.mdf
mastlog.ldf model.mdf
modellog.ldf msdbdata.mdf
msdblog.ldf system_health_0_131061520581180000.xel
tempdb.mdf templog.ldf
12 File(s) 46,701,550 bytes
2 Dir(s) 117,107,499,008 bytes free
Jak widać, ten stworzony moje wystąpienie LocalDB pod c: \ temp, choć dziedziczy oryginalnego hierarchię folderów z „AppData” naprzód (co wydaje się niezmienne). Zauważ, że konieczne było również ręczne utworzenie części "AppData \ Local" w hierarchii folderów, w przeciwnym razie nie powiedzie się.
Następnym problemem jest połączenie z tą bazą danych z aplikacji C#. Aby to zrobić,% USERPROFILE% zmienna musi być ustawiony w tym samym miejscu jak wyżej, tj .:
Environment.SetEnvironmentVariable("USERPROFILE", "c:\\temp");
Należy to zrobić przed nawiązaniem połączenia DB. Prawdopodobnie najlepiej to zrobić gdzieś w punkcie wejścia aplikacji.
W sumie jest to trochę hack, ale przynajmniej daje możliwość przechowywania rzeczy w innym miejscu niż "c: \ users ...".
Wierzę, że powinienem zapytać, czy możliwe jest utworzenie wystąpienia serwera w innej lokalizacji – santBart