2013-05-06 38 views
5

Chương trình của tôi sẽ chạy với tư cách quản trị viên. Hai năm trước, tôi tạo một tệp kê khai và nó hoạt động tốt. Nhưng bây giờ, tôi chuyển từ Delphi 2010 sang Delphi XE3 và nó không hoạt động - chương trình bắt đầu như thường lệ (không phải là quản trị viên). Hơn nữa tôi sẽ gọi chương trình của tôi là "MyApp".Không bắt tệp kê khai

Trong nguồn, tôi tuyên bố hai res-files:

{$R MyApp.res} 
{$R Manifest.res} 

Manifest đã tạo ra bởi mã này:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <assemblyIdentity 
    type="win32" 
    name="MyApp" 
    version="1.1.0.0" 
    processorArchitecture="x86"/> 
    <description> 
    MyApp 
    </description> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity 
     type="win32" 
     name="Microsoft.Windows.Common-Controls" 
     version="6.0.0.0" 
     publicKeyToken="*deleted*" 
     language="*" 
     processorArchitecture="x86"/> 
    </dependentAssembly> 
    </dependency> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel 
      level="requireAdministrator" 
      uiAccess="false"/> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
</assembly> 

Khi tôi xóa {$ R MyApp.res} từ nguồn công việc biểu hiện. Vì vậy, tôi hiểu rằng MyApp.res (được tạo tự động bởi Delphi) đánh bại Manifest.res. Nhưng trong Delphi 2010 cấu hình này hoạt động hoàn hảo nhưng không hoạt động trong XE3. Tại sao? Làm thế nào tôi có thể sửa chữa nó?

Trả lời

9

Nếu bạn muốn sử dụng tệp .res tùy chỉnh cho tệp kê khai của mình, bạn cần phải tắt tệp kê khai mặc định của Delphi vì quá trình chỉ có thể có 1 tệp kê khai. Đi vào Tùy chọn dự án, trong phần "Ứng dụng" và đặt tùy chọn "Thời gian chạy chủ đề" thành "không".

Hoặc, di chuyển tệp kê khai của bạn thành tệp .manifest, sau đó đặt tùy chọn "Thời gian chạy chủ đề" để "sử dụng tệp kê khai tùy chỉnh". Sau đó, xóa tệp .res tùy chỉnh của bạn khỏi mã của bạn.

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