2011-11-13 32 views
11

Tôi đã thử nhiều lần để sử dụng kỹ thuật tương tự như "tham chiếu có điều kiện" cho nội dung có điều kiện.Nội dung có điều kiện Dựa trên cấu hình

Mục nhập nội dung trong tệp Dự án Visual Studio chẳng hạn như "web.config" Tôi làm không phải muốn bao gồm khi tôi xuất bản trang web.

Tôi đã thử một vài điều như ...

<Choose> 

    <When Condition="$(Configuration) != 'Release'"> 
     <ItemGroup> 
      <Content Include="web.config"> 
       <SubType>Designer</SubType> 
       <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
       </Content> 
     </ItemGroup> 
    </When> 
    <Otherwise> 
     <ItemGroup> 
     </ItemGroup> 
    </Otherwise> 

</Choose> 

Nhưng điều này không làm việc. Bất kỳ ý tưởng? Hay bạn đã gặp phải điều này trước đây và giải quyết nó?

Trả lời

19

Tôi tin rằng bạn chỉ có thể thêm Điều kiện để các ItemGroup ... Ví dụ:

<ItemGroup Condition="'$(Configuration)' != 'Release'"> 
     <Content Include="web.config"> 
      <SubType>Designer</SubType> 
      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
      </Content> 
    </ItemGroup> 

Lưu ý ve xung quanh '$ (Cấu hình)' trong tình trạng này. Đó là những điều rất cần thiết.

+0

Tôi vừa thử điều này và tôi không thể làm cho nó hoạt động. Tôi cũng đã thử điều kiện = "'$ (cấu hình)' == 'gỡ lỗi'", nhưng vẫn không có niềm vui. Khi tôi chuyển cấu hình các tập tin chỉ đơn giản là đặt trong dự án. Tôi cũng đã thử chuyển đổi cấu hình và sau đó dỡ và tải lại dự án, nhưng vẫn những tệp đó được bao gồm bất kể cấu hình nào tôi chọn. – tentux

+0

Tôi cũng vừa thử tạo một Ứng dụng Console mới để đảm bảo giải pháp phức tạp hơn không phải là ném cờ lê trong các tác phẩm. Nhưng nó vẫn không hoạt động: Bất kể cấu hình nào tôi chọn các tệp này đều có trong dự án. – tentux

+0

Tôi vừa phát hành mặc dù khi BUILDING trong bản phát hành tôi nhận được một lỗi biên dịch vì tĩnh chính không có mặt. Nghi ngờ của tôi là tôi đang mong đợi Solution Explorer để phản ánh những gì sẽ được đưa vào/xây dựng. Mặc dù các tệp này có thể nhìn thấy trong dự án, nhưng nó xuất hiện như thể bản dựng nhảy qua chúng. Tôi sẽ cố gắng lý thuyết của tôi sau này và xác nhận trong một bài viết riêng biệt. – tentux

2

Tôi muốn mở rộng câu trả lời được cung cấp bởi Nick Nieslanik với một số chi tiết chỉ để những người khác không bị bối rối giống như tôi.

Giải pháp hoạt động trong khi xây dựng/xuất bản, nhưng giao diện của Visual Studio 2010 có thể không phản ánh các thay đổi được thực hiện. Cho dù đây là một khiếm khuyết hay không, tôi không chắc chắn, nhưng nó đã gây nhầm lẫn cho tôi và nó có thể gây nhầm lẫn cho người khác.

+0

Nói rằng đây là nhận xét sẽ hiệu quả hơn câu trả lời. – jpierson

+0

Tôi đã nhìn thấy hiện tượng tương tự. VS2010 không phản ánh những gì thực sự được thực hiện. –

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