2013-10-30 13 views
10

Điều này làm việc trong VS2010VS2012. Nhưng trong ứng dụng VS2013 (bằng cách nhấn "Chạy" hoặc F5) chỉ mới bắt đầu với quyền của người dùng và không thể truy cập một số tài nguyên (tôi đang sử dụng HttpListener).Tệp kê khai không bắt buộc Visual Studio 2013 khởi động lại dưới Quản trị khi chạy ứng dụng ở chế độ Gỡ lỗi

<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> 

Tôi đã cố gắng tạo bản trình bày mới, sao chép nội dung từ MSDN nhưng không có gì hữu ích. Có điều gì đã thay đổi trong phần này của VS2013?

Update1:
Đó là một phần. Dưới đây là nội dung hoàn chỉnh manifest:

<?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="MyApplication.app"/> 
<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> 

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
    <application></application> 
</compatibility> 

</asmv1:assembly> 

Update2:
Okey đây là ví dụ đơn giản: khi tôi chạy biên soạn tập tin .exe UAC yêu cầu đặc quyền quản trị. Nhưng khi tôi chạy nó từ VS2013 (bằng cách nhấn "Chạy" hoặc F5) thì không! Và nếu bạn mở cùng một dự án với VS2012/VS2010, họ sẽ yêu cầu khởi động lại dưới quyền quản trị.
Bạn có thể kiểm tra điều này một cách nhanh chóng:
Tạo giao diện điều khiển ứng dụng trong VS2013, thêm biểu hiện và thiết lập level = "requireAdministrator". Sau đó, chạy hoặc nhấn F5 (VS2013 chạy ứng dụng dưới quyền quản trị khi nhấn Ctrl-F5).
Nhưng đây không phải là hành vi của VS2012/VS2010!
Làm cách nào để có được hành vi cũ?

UPDATE3:
hãy bỏ phiếu here hoặc thông báo cho tôi về vé khác.

+0

Tôi vừa mới nhận thấy điều này hôm nay. Đã không thể tìm thấy bất kỳ thông tin nào về nó. Bây giờ tôi chỉ mới bắt đầu VS 2013 với tư cách là quản trị viên, nhưng chắc chắn sẽ tốt hơn nếu mang lại hành vi cũ để tôi không phải nhớ tự mình làm điều đó. – Deke

+0

Cùng một vấn đề ở đây. Khi tôi bắt đầu giải pháp với VS2012, nó yêu cầu khởi động lại. Vì vậy, biểu hiện của tôi là tốt. – JimDel

Trả lời

14

Bạn cần phải vô hiệu hóa quá trình tùy chọn lưu trữ để có được khởi động lại nhanh chóng VS . Dự án + Thuộc tính, tab Gỡ lỗi, bỏ chọn hộp kiểm "Bật quy trình lưu trữ Visual Studio". Nó có thể dễ dàng hơn để chỉ cần bắt đầu VS nâng lên ngay lập tức. Nhấp chuột phải vào phím tắt, Run as Administrator.

Không hoàn toàn chắc chắn nếu đây là lỗi hoặc tính năng.Theo dõi số điện thoại this Connect report để tìm hiểu thêm.


Cập nhật: trông giống như lỗi, báo cáo phản hồi đã bị đóng là "cố định". Thật không may nó không đưa ra gợi ý khi sửa chữa đó sẽ làm cho nó máy của chúng tôi. Có lẽ một bản cập nhật VS2013 trong tương lai, chắc chắn là phiên bản tiếp theo.
Update2: bản sửa lỗi đã được đưa vào Bản cập nhật VS2013 3.

+0

Cảm ơn bạn! Đây là mã: XmlElement sử dụngVSHostingProcessElement = doc.CreateElement ("UseVSHostingProcess", NS); useVSHostingProcessElement.InnerText = "false"; el.AppendChild (useVSHostingProcessElement); –

1

Tôi hy vọng điều này sẽ được khắc phục sớm Đồng thời bạn có thể sử dụng các phím tắt tiện dụng để khởi động lại VS ở chế độ quản trị, tra cứu "Visual Studio Restart" trong thư viện tiện ích mở rộng.

Edit:

Chỉ cách tôi thấy bạn có thể đạt được các hành vi cũ là để tắt VS quá trình lưu trữ vì nó là quá trình này mà vì một lý do "ăn" dấu nhắc độ cao. Thực ra khi tôi nghĩ về nó, hành vi này thậm chí có thể là do thiết kế. Bạn có thể tắt quá trình lưu trữ trong thuộc tính dự án (Debug) hoặc khi bạn tạo csproj đặt thẻ nền tảng cấu hình UseVSHostingProcess false, như vậy:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <PlatformTarget>AnyCPU</PlatformTarget> 
    <DebugSymbols>true</DebugSymbols> 
    <DebugType>full</DebugType> 
    <Optimize>false</Optimize> 
    <OutputPath>bin\Debug\</OutputPath> 
    <DefineConstants>DEBUG;TRACE</DefineConstants> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    <UseVSHostingProcess>false</UseVSHostingProcess> 
</PropertyGroup> 
+0

Kịch bản của chúng tôi là tiếp theo: người dùng cài đặt Engine của chúng tôi, chạy VS và tạo dự án dựa trên HttpListener mới với sự trợ giúp của Wizard của chúng tôi. Sau đó, anh ta (cô ấy) bắt đầu dự án và VS yêu cầu khởi động lại ở chế độ quản trị. –

+0

Bạn có thể đánh dấu bài đăng của tôi là câu trả lời như tôi đã chỉ ra cách hành vi cũ có thể được nhân rộng (với các hiệu ứng phụ tối thiểu) trước bất kỳ ai khác trong chuỗi này (bao gồm chỉnh sửa) không? – Nemo

2

Điều tôi đã làm là chạy dự án mà không cần gỡ lỗi CRTL+F5. Nó cho tôi lời nhắc tương tự mà Visual Studio 2010 cung cấp cho bạn.

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