2009-05-12 61 views
6

Hiện tại mã .net của chúng tôi không phải là bộ xử lý cụ thể, nhưng nó phụ thuộc vào thư viện (Oracle/ODP.Net). Chúng tôi đã tìm thấy giải pháp nơi chúng tôi chỉnh sửa trực tiếp tệp csproj và đặt tham chiếu vào các nhóm mục với điều khoản Điều kiện dựa trên cấu hình xây dựng đã chọn của chúng tôi. Chúng tôi có 32 bit debug/release và 64bit debug/release, và assembly chính xác là các tham chiếu khi bạn xây dựng cấu hình đó.Tham chiếu có điều kiện

Tác phẩm này hoạt động nhiều hơn hoặc ít hơn vào thời gian xây dựng, nhưng nó gây ra tất cả các loại sự bất ổn trong Visual Studio (2008). Kết quả cuối cùng là cùng một hội đồng xuất hiện bốn lần dưới sự tham chiếu, và ba có dấu chấm than màu vàng. Nó cũng tạo ra một số cảnh báo 76 mà tôi không thể thoát khỏi. Chúng tôi cố gắng nhắm tới 0 cảnh báo vì chúng tôi muốn biết khi nào những cảnh báo mới xuất hiện nên đây là một vấn đề.

Có ai biết giải pháp cho các tham chiếu có điều kiện cho phép nó giống như một tham chiếu duy nhất (thực sự là) và không lấp đầy cảnh báo của tôi tại thời gian xây dựng không?

Trả lời

1

Điều duy nhất mà nhảy vào tâm trí là có 4 tác phẩm dự án riêng biệt ... nhưng trước khi bạn hoảng sợ về việc phải duy trì 4 tác phẩm khi đã bao giờ bạn thêm một lớp, bạn có thể sử dụng một thủ thuật csproj đây:

<Compile Include="**\*.cs" /> 

(IIRC) nói "bao gồm tất cả các tệp cs ở mọi cấp trong cấu trúc thư mục".

1

Chúng tôi tìm thấy câu trả lời hơi khác so với những gì chúng tôi đang tìm kiếm, nhưng tôi thích nó. Nếu bạn thêm tệp này vào tệp cấu hình của mình trong thời gian chạy-> AssemblyBinding

 
<dependentAssembly> 
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" /> 
<bindingRedirect oldVersion="2.111.6.20" newVersion="2.111.6.0" /> 
</dependentAssembly> 

Sau đó, các phiên bản 64 bit và 32 bit hoạt động với cùng một bản dựng. Tất cả những gì chúng ta phải làm là không phải là sao chép Oracle.DataAccess.dll tại địa phương khi chúng ta triển khai và để nó kéo nó khỏi GAC.

Cảm ơn!

Các vấn đề liên quan