Tôi có một bổ trợ VSTO Excel 2007 để đọc kết nối từ tệp app.config và sau đó cho phép người dùng quyết định kết nối cơ sở dữ liệu nào. Điều này làm việc tốt khi tôi gỡ lỗi nó, nhưng khi tôi chạy phiên bản được triển khai (được thực hiện với Windows Installer) thì các kết nối không được đọc chút nào. Tôi đã thêm các kết quả đầu ra chính từ tất cả các dự án vào dự án thiết lập. Tệp app.config nằm trong dự án ExcelAddIn, nhưng không nằm trong tiêu đề Excel. Lớp quản lý kết nối là trong một dự án khác.Phiên bản VSTO Debug tốt, Phiên bản đã cài đặt không đọc app.config
Dưới đây là file app.config của tôi:
<?xml version="1.0"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</configSections>
<connectionStrings>
<clear/>
<add name="MyEntities" connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/SymModel.msl;provider=System.Data.SqlClient;provider connection string="data source=myServer;initial catalog=myDB;persist security info=True;user id=myUser;password=myPassword;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient"/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0"/>
</parameters>
</defaultConnectionFactory>
</entityFramework>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
tôi sử dụng sau đây để có được connectionStrings:
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConnectionStringsSection csSection = config.ConnectionStrings;
Tôi đã cố gắng thêm file ExcelAddin.dll.config đến thiết lập thư mục của dự án trong đó thư mục Release và tệp .proj là. Tôi đã thiết lập thuộc tính 'Copy to Output Directory' của file app.config thành 'Copy always' và thuộc tính Build Action thành 'Content'.
Có điều gì đó đáng lo ngại với tệp app.config của tôi hay tại sao nó không được chọn (kết nối không được tải vào csSection) sau khi tôi đã chạy trình cài đặt?
Câu trả lời này đã tiết kiệm cho tôi số giờ làm việc. Cảm ơn bạn! Khi bạn tạo các trình cài đặt VSTO bằng cách sử dụng MSI, hãy kiểm tra xem giá trị khóa sổ đăng ký 'Manifest' của bạn có bắt đầu bằng' file: /// 'như được mô tả trong câu trả lời ở trên không. Khác Add-In sẽ sử dụng Excel.exe.config (nếu bạn viết một Excel Add-In) thay vì cấu hình của bạn. – lennartk