هل يمكنني تعديل ملف package.xml في SQL Bootstrapper لتثبيت مثيل SQL Server المسماة
-
25-09-2019 - |
سؤال
أرغب في استخدام bootstrapper sqlexpress2008 لتثبيت جديد على Windows7 ، لا أريد استخدام مثيل Sqlexpress الافتراضي.
لقد حاولت تحرير ملف package.xml الموجود في: C: Program Files Microsoft
sdks windows v7.0a botstrapper packages sqlexpress2008 en package.xml
وتحديث وسيطة الأمر instancename =Custominstance
<Command PackageFile="SQLEXPR32_x86_ENU.EXE"
Arguments='/q /hideconsole /action=Install /features=SQL /instancename="CUSTOMINSTANCE" /enableranu=1 /sqlsvcaccount="NT Authority\Network Service" /AddCurrentUserAsSqlAdmin /skiprules=RebootRequiredCheck'
EstimatedInstalledBytes="225000000"
EstimatedInstallSeconds="420">
لكن للأسف لا يزال يخلق الافتراضي sqlexpress ليس Custominstance
علامة WIX كما يلي:
<sql:SqlDatabase
Id="SqlDatabaseCore"
ConfirmOverwrite="yes"
ContinueOnError="no"
CreateOnInstall="yes"
CreateOnReinstall="no"
CreateOnUninstall="no"
Database="MyDatabase"
DropOnInstall="no"
DropOnReinstall="no"
DropOnUninstall="no"
Instance="[SQLINSTANCE]"
Server="[SQLSERVER]">
<sql:SqlFileSpec
Id="SqlFileSpecCore"
Filename="[CommonAppDataFolder]MyCompany\Database\MyDatabase.mdf"
Name="MyDatabase" />
<sql:SqlLogFileSpec
Id="SqlLogFileSpecCore"
Filename="[CommonAppDataFolder]MyCompany\Database\MyDatabase.ldf"
Name="MyDatabaseLog" />
<Property Id='SQLSERVER'>.</Property>
<Property Id='SQLINSTANCE'>CUSTOMINSTANCE</Property>
هل هذه هي الطريقة القياسية لإنجاز هذا؟
المحلول
لا أعرف عن المعيار ، لكننا مررنا بـ Instancename الجديد إلى إعداد Sqlexpress القابل للتنفيذ على سطر الأوامر. أولاً ، فك ضغط ملف sqlexprad_x86_enu.exe في دليل مؤقت ،
string workingDir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
string pathToSQLSetupTempDirectory = workingDir + Path.DirectorySeparatorChar + "sqlsetup";
if (!System.IO.Directory.Exists(pathToSQLSetupTempDirectory))
{
System.IO.Directory.CreateDirectory(pathToSQLSetupTempDirectory);
}
string path = Path.GetFullPath(workingDir + Path.DirectorySeparatorChar + "SQLEXPRADV_x86_ENU.exe");
string args = "/Q /X:" + pathToSQLSetupTempDirectory;
ثم ، قم ببناء معلمات سطر الأوامر وقم بتشغيل ملف SETUP.exe المستخرج. لمنع تثبيت أدوات الإدارة ، أضف "/ميزات = SQL" إلى وسيطات سطر الأوامر:
path = pathToSQLSetupTempDirectory + Path.DirectorySeparatorChar + "Setup.exe";
args = "/QUIET /Action=Install /Features=SQL,Tools /InstanceName=" + instanceName +
" /SECURITYMODE=SQL /TCPENABLED=1 /SAPWD=" + sqlSAPswd + " /SQLSYSADMINACCOUNTS=\"Builtin\\Administrators\" /SQLSVCACCOUNT=\"NT AUTHORITY\\NETWORK SERVICE\"";
http://msdn.microsoft.com/en-us/library/ms144259.aspx لديه المزيد حول الحجج المدعومة.
نصائح أخرى
نعم ، هذه هي الطريقة الصحيحة للقيام بذلك ، فقط تأكد من تغيير اسم المثيل في كل الحدوث (معلمات x86 ومعلمات x64)