2010-03-03 42 views
14

Có cách nào để nhúng tài nguyên có điều kiện vào dự án .NET không? I E. nếu tôi đã định nghĩa INCLUDETHIS thì tôi muốn một tệp lớn nhất định được nhúng vào dll, nếu không thì tôi không muốn nó được nhúng vào. Tôi biết tôi có thể làm cho hai dự án để làm điều này, nhưng tôi hy vọng sẽ làm tất cả trong một dự án. Mã sử ​​dụng tệp có thể dễ dàng được điều chỉnh với #if INCLUDETHIS ... #endif, nhưng tôi thậm chí không muốn tệp trong dll khác vì nó chứa thông tin nhạy cảm và chỉ được sử dụng trong nội bộ.Điều kiện nhúng tài nguyên trong Visual Studio (C#)

Trả lời

18

Điều này đã thực hiện thủ thuật. Bạn có thể chỉnh sửa trong Visual Studio bằng cách nhấp chuột phải vào dự án và chỉnh sửa hoặc sử dụng trình soạn thảo bên ngoài như Notepad ++:

<Choose> 
    <When Condition=" '$(Configuration)'!='ReleaseExternal' And '$(Platform)'=='x86' "> 
     <ItemGroup> 
     <EmbeddedResource Include="file.dll"> 
      <Link>Resources\Other\file.dll</Link> 
     </EmbeddedResource> 
     </ItemGroup> 
    </When> 
    </Choose> 
+0

Bạn có thể chỉnh sửa csproj trong Visual Studio, nhưng trước tiên bạn phải dỡ bỏ dự án đó. – Sarrus

+0

Tôi luôn có thể chỉnh sửa bằng notepad ++ khi được tải – jjxtra

+0

Ý tôi là không phải là thứ hai để sử dụng trình soạn thảo văn bản bên ngoài – Sarrus

1

Bạn có thể nhúng tài nguyên vào tệp csproj của mình theo điều kiện tùy thuộc vào cấu hình, tuy nhiên tôi không chắc chắn liệu bạn có thể kiểm soát nó bằng cách sử dụng #if câu lệnh trong mã của bạn hay không.

Có thể thêm cấu hình xây dựng tùy chỉnh thay thế (ngoài "Gỡ lỗi" và "Phát hành")? Và sau đó chỉ cần chỉnh sửa tệp csproj của bạn theo cách thủ công để nhúng nó nếu $ (Configuration == 'your buildconf custom').

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