Tôi hiện đang cố sửa đổi trình cài đặt Wix (V3.5) của mình để chỉnh sửa cài đặt Web.config của ứng dụng .NET mà tôi muốn cài đặt. Điều này là tốt cho các ứng dụng ASP.NET bình thường nhưng bây giờ tôi đang cố gắng áp dụng dự án thiết lập Wix của tôi cho ứng dụng Entity Framework .NET, như bạn có thể biết có một thiết lập chuỗi kết nối phức tạp hơn với các thiết lập mô hình .csdl và .ssdl.Chỉnh sửa cài đặt chuỗi kết nối Web.Config Connection với Wix
Vì vậy, nếu web.config thiết lập chuỗi kết nối của tôi trông somehting như thế này: (trong đó [DBSERVER] & [DBNAME] là tài sản retrived từ một hộp thoại)
<connectionStrings>
<add name="SSITacticalSolutionEntities" connectionString="metadata=res://*/Model.TacticalSolutionModel.csdl|res://*/Model.TacticalSolutionModel.ssdl|res://*/Model.TacticalSolutionModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=sd-sql2008r2;Initial Catalog=SsiTacticalSolution1.2.4;Integrated Security=True;MultipleActiveResultSets=True" />
</connectionStrings>
Và tôi sửa Web.config của tôi trong tôi tập tin Product.Wsx với somehting như thế này:
<util:XmlFile Id="ModifyConnectionString" Action="setValue" Permanent="yes" File="[INSTALLLOCATION]Web.config"
ElementPath="/configuration/connectionStrings/add[\[]@name='!(loc.EntityName)'[\]]" Name="connectionString"
Value="Data Source=[DBSERVER];Initial Catalog=[DBNAME];Integrated Security=true;providerName=System.Data.EntityClient;MultipleActiveResultSets=True"" Sequence="5"/>
tôi nhận được một chuỗi kết nối như thế này:
<connectionStrings>
<add name="SSITacticalSolutionEntities" connectionString="Data Source=sd-sql2008r2;Initial Catalog=SsiTacticalSolution1.2.4;Integrated Security=true;providerName=System.Data.EntityClient;MultipleActiveResultSets=True""/>
</connectionStrings>
Tất nhiên là có ý nghĩa, vì im yêu cầu nó thay thế thuộc tính chuỗi kết nối hiện tại bằng những gì tôi đã xác định trong giá trị.
Nhưng những gì tôi thực sự cần ở đây là chỉnh sửa các phần cụ thể trong chuỗi kết nối của mình và để phần còn lại (có một số hành động thay thế tôi có thể sử dụng tại đây), tức là. để lại tất cả các thiết lập mô hình của tôi tại chỗ và chỉ cần thay thế máy chủ cơ sở dữ liệu và tên vv như tôi cần. Tôi sử dụng để làm điều này với các trình cài đặt Visual Studio không có vấn đề và nó rất dễ sử dụng.
Vì vậy, câu hỏi của tôi là điều này có thể được thực hiện bằng cách sử dụng util.XMLFile, hoặc có lẽ util: XmlConfig? Tôi đã thử cả hai mà không có may mắn.
Hoặc điều này không thể thực hiện với util.XMLFile và tôi có phải thực hiện việc này trong CustomAction thay thế không? Bất kỳ ý tưởng nào sẽ giúp ích rất nhiều, cảm ơn trước ...
Necro nhưng ... thực hành tốt hơn là thay thế GUID thực của bạn bằng "PUT-GUID-HERE" trong ví dụ. – Izzy
Cảm ơn bạn đã nhờ mẹo Izzy – Alicia