2012-11-26 1 views
1

Windows Vista에서 VS2005를 사용합니다. 닫기 버튼이있는 양식 인 .NET 2.0을 사용하여 C#에서 매우 간단한 Windows 응용 프로그램을 만듭니다.VS2005 .NET 2.0 및 C# 및 x86 대상 플랫폼

필요한 라이브러리 때문에 VS-option 대상 플랫폼 "x86"이 필요합니다. Vista를 기반으로 X64 Windows 7 컴퓨터로 응용 프로그램을 전송하는 경우 응용 프로그램에 실행을위한 관리자 권한 (UAC-Message-Dialog)이 필요하므로 피해야합니다.

VS- 옵션 대상 플랫폼 "anyCPU"를 사용하는 경우 제대로 작동하지만 대상 플랫폼 "x86"에 대한 솔루션이 필요합니다.

아무도 도와 줄 수 있습니까?

내가하고 싶은 일은 Windows7 (x64)의 UAC-Message-Dlg를 피하기 위해 코드 또는 프로젝트 구성을 변경하는 것입니다. 그러나 나는 내가해야 할 일을 모른다. x86 라이브러리를 사용하기 때문에 "x86"옵션이 필요합니다. 테스트 코드 (아래 참조) 완전히 간단하다, 그래서 문제가 프로젝트 구성에 추정 :

// Project code: 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 

namespace Updater2 
{ 
    public partial class Form1 : Form 
    { 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void toolStripButton1_Click(object sender, EventArgs e) 
    { 
     Close(); 
    } // -- toolStripButtonClose_Click 
    } // - Form1 
} 
+1

문제는 프로그램에 관리자 권한이 필요하므로 코드없이 문제를 해결하는 방법에 대해 조언 할 수는 없습니다. 'anyCPU '를 대상으로하면 x86이나 x64 운영 체제에서 프로그램을 실행할 수 있지만 Windows 7에서는 프로그램이 실제로하는 일에 따라 UAC를 불러옵니다. 당신의 질문은 정확히 무엇입니까? 나는 "누구든지 나를 도울 수 있느냐"는 주제에 관한 질문이 아니라고 말할 수 있습니다. –

+0

이것은 VS2008 이상에서 Project + New Item, Application Manifest File에서 간단하게 해결할 수 있습니다. 업데이트 할 시간이 많습니다. –

+0

내가 원하는 것은 Windows7 (x64)의 UAC-Message-Dlg를 피하기 위해 코드 또는 프로젝트 구성을 변경하는 것입니다. 그러나 나는 내가해야 할 일을 모른다. x86 라이브러리를 사용하기 때문에 "x86"옵션이 필요합니다. 테스트 코드는 완전히 단순하므로 (아래 참조) 프로젝트 구성에 문제가 있다고 가정합니다. 문자 수가 제한되어 있기 때문에 코드를 삽입 할 수 없습니다. –

답변

1

기회는 당신이 C에 파일을 작성하려고입니다 :/또는 C :/Program Files 폴더. UAC를 피하려면 %Current User% 폴더에 파일을 작성하십시오. 그 외에도 코드를 보지 않고도 솔루션을 제공 할 수는 없습니다.

0

문제는 프로그램 이름에 "업데이트"이라는 단어입니다.

실행 파일의 이름에 "업데이트", "설치"또는 "설치"와 같은 단어가 있으면 Windows는 관리자 권한이 필요할 가능성이 높은 설치 관리자라고 가정합니다. 따라서 이러한 프로그램은 UAC 지원 시스템에서 권한 상승 프롬프트로 실행해야합니다.

실행 파일 이름이 아닙니다. 파일의 이름을 바꾸어도 문제가 해결되지 않으면 응용 프로그램에 버전 정보에도 이러한 키워드가있을 수 있습니다. 다음과 같이하면 동일한 동작이 발생합니다.

[assembly: AssemblyTitle("Setup DVD Player")] 
[assembly: AssemblyProduct("Instal President")] // Yes, even with the misspelling. 

쉬운 방법은 응용 프로그램의 이름을 바꾸고 이러한 키워드를 사용하지 않는 것입니다.

올바른 출구는 실행 파일에 응용 프로그램 목록을 포함합니다.