Tôi muốn ghi đè các thư mục được Visual Studio (devenv.exe) sử dụng cho đường dẫn trình biên dịch và thư viện. Tôi biết làm thế nào để làm điều này tương tác thông qua Tools-> Options-> VC++ Thư mục, nhưng tôi muốn tự động hóa điều này.cách sử dụng tệp .vsprops để ghi đè thư mục VC++ trong MS Visual Studio
http://msdn.microsoft.com/en-us/library/t9az1d21(VS.80).aspx có một lưu ý tantalizing về điều này: "Nếu bạn muốn thiết lập đường dẫn tìm kiếm thư mục (cho dự án của bạn) có thể được chia sẻ bởi người dùng khác hoặc có thể được áp dụng trên nhiều máy tính, Visual C++ cung cấp một thay thế cho việc sử dụng hộp thoại này, thông qua các trang thuộc tính của dự án Để biết thêm thông tin, hãy xem Bảng tính chất (C++). "
Nếu bạn theo liên kết đến tài liệu Trang tính thuộc tính, có một loạt thông tin về cơ chế nhưng không có thông tin nào về thuộc tính thực tế bạn cần đặt.
Tôi tìm thấy thông tin được điền bởi hộp thoại VC++ Directories, trong% LocalAppData% \ Microsoft \ VisualStudio \ 8.0 \ VCComponents.dat (cho VS 2005 và 9.0 cho VS 2008); nó dường như thiết lập các thuộc tính khác nhau trong VC \ VC_OBJECTS_PLATFORM_INFO \ win32 \ Directories và ... \ x64 \ Directories.
Có ai đã làm điều này trước đây và biết ánh xạ là từ tên thuộc tính được sử dụng trong VCComponents.dat đến tên để sử dụng trong tệp .vsprops không?
Tôi muốn điều này hoạt động trong VS2005, VS2008 và VS2010, lý tưởng.
Trong VS2010, Microsoft đã hoàn toàn thực hiện với hộp thoại VC++ Directories bên dưới Tùy chọn xem, thực hiện theo dự án và bây giờ bạn có giao diện người dùng tương tác để chỉnh sửa các thư mục này trong thuộc tính dự án thay vì tùy chọn xem; điều này cũng có nghĩa là có một giao diện người dùng cho nó trong trình quản lý thuộc tính; sau đó nếu bạn muốn thay đổi mỗi máy thay vì mỗi dự án như trước đây, bạn chỉ cần đặt một bảng thuộc tính theo cách bạn muốn và làm cho tất cả các dự án của bạn kế thừa từ nó. Điều này nghe có vẻ như một cải tiến lớn so với cách cũ. Và một cách trực tiếp để làm những gì tôi muốn làm. Nhưng chỉ trong VS2010.
VS2005 và VS2008 không có giao diện người dùng để đặt các thuộc tính này trong bảng dự án hoặc thuộc tính, mặc dù; Tôi rất vui khi làm điều đó bằng tay nhưng tôi không biết nó trông như thế nào!
Dưới đây là một VS trống 2005 .vsprops file:
<?xml version="1.0"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="pathSettings"
>
</VisualStudioPropertySheet>
Tôi đã cài đặt VS 2010 và sử dụng giao diện mới gọn gàng của mình để thực hiện thay đổi trong thư mục tìm kiếm; có vẻ như sau:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup>
<ExecutablePath>C:\Test;$(PATH)</ExecutablePath>
</PropertyGroup>
</Project>
Tuy nhiên, điều đó không làm việc đúng nguyên văn trong VS2005 - VS2005 từ chối tải (không khiếu nại DTD/lược đồ).
Tôi plunked rằng vào container, để đáp ứng mà VS2005 nói với tôi "Element 'PropertyGroup' là bất ngờ theo mô hình nội dung của phần tử cha 'VisualStudioPropertySheet'. Mong đợi: Công cụ, UserMacro." Công cụ và UserMacro là những điều duy nhất được hiển thị trong ví dụ trong trang MSDN [drat - StackOverflow sẽ không cho phép tôi làm người dùng mới đặt liên kết ở đây - kết quả tìm kiếm đầu tiên của Google cho 'công cụ trang thuộc tính usermacro'] - có thể là những điều duy nhất hợp pháp trong một tài sản VS2005?
Thêm liên kết: - Sở hữu tài liệu tấm: http://msdn.microsoft.com/en-us/library/a4xbdz1e(VS.80).aspx - bài viết về những thay đổi trong VS 2010: http://blogs.msdn.com/vsproject/archive/2009/07/07/vc-directories.aspx Những gì tôi không biết là đưa vào tệp .vsprops (VS2005 hoặc 2008) hoặc tệp .props (2010)) để thực hiện cùng một điều mà bạn thực hiện bằng cách chỉnh sửa VCComponents.dat, để thiết lập hoặc ghi đè thư mục tìm kiếm đường dẫn/bao gồm/thư viện cho mỗi nền tảng xây dựng. – metamatt
Điều này có vẻ hữu ích/có liên quan (vẫn đang xử lý): http://stackoverflow.com/questions/142708/what-do-delimiter-and-inheritsfromparent-attributes-mean-in-vsprops-files – metamatt
OK, nếu chỉ Công cụ và UserMacro làm việc ở đó, có lẽ tôi phải tìm đúng cách để ghi đè đường dẫn include của trình biên dịch và đường dẫn bao gồm của trình liên kết bằng cách sử dụng các chỉ thị Công cụ. Tuy nhiên, điều đó sẽ không giúp ích gì cho con đường thực thi được? – metamatt