2013-07-05 30 views
3

我正在修改很久以前爲x86體系結構平臺(win32)構建的C#項目的清單,以便在64位和32位計算機上工作。爲多平臺環境聲明清單

原來這裏是清單文件:

<?xml version="1.0" encoding="utf-8"?> 
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <assemblyIdentity version="1.0.0.0" name="app.exe" processorArchitecture="X86" type="win32"/> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
     <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 
     <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
</asmv1:assembly> 

我找不到是如何獲得x86和x64兩種(Win32和Win64上)在ProcessorArchitecture用於和類型字段工作?

回答

4

您可以使用

processorArchitecture="*" 

以表示對所有架構的支持。

如果您的應用程序是一個32位的應用程序,那麼你可以使用

processorArchitecture="x86" 

有了這樣一個清單的過程將是一個64位系統上就好了,因爲它將會運行爲下一個32位進程WOW64模擬器。

對於在x64上運行64位應用程序使用

processorArchitecture="amd64" 

最後,64位Itanium值

processorArchitecture="ia64" 

對於type屬性值始終type="win32"

的文檔(這是無可否認的一點稀疏)是在這裏:http://msdn.microsoft.com/en-us/library/windows/desktop/aa374191.aspx

對於什麼是值得的,它似乎沒有我,好像你需要改變什麼。如果您有一個使用processorArchitecture="x86"清單構建的32位可執行文件,那麼該可執行文件已針對32位和64位系統完美配置。請記住,這裏所指的是進程的體系結構,而不是運行進程的系統的體系結構。即使在64位系統上,32位可執行文件也可以作爲32位進程運行。

+0

什麼會進入「類型」字段(即對於32位我有type =「win32」),同樣的事情? – sonne

+0

'type'字段總是「win32」 –

+0

@ARSL'type'必須總是win32。 – vcsjones