Tôi đang sử dụng VS2010 và tôi đã cố gắng thêm một vài cụm từ đĩa cứng cục bộ vào dự án C# của tôi thông qua tham chiếu tệp. Nhìn trộm vào file csproj
, tôi thấy đôi khi các tài liệu tham khảo tập tin xuất hiện nhưTìm hiểu về tham chiếu assembly csproj
<Reference Include="name">
Tuy nhiên đôi khi nó xuất hiện như
<Reference Include="name, Version=xxx, Culture=neutral,
processorArchitecture=MSIL">
gì có thể gây ra sự khác biệt?
Lấy cảm hứng từ câu trả lời của k3b, tôi đã làm một thử nghiệm khác. Tôi đã tạo một dự án thư viện lớp mới.
Thêm tham chiếu tệp. Giá trị ban đầu của Phiên bản cụ thể trong Thuộc tính ngăn là False. Các
csproj
tập tin trông giống như<Reference Include="Name"> <HintPath>...</HintPath> </Reference>
Thay đổi Version cụ trong Thuộc tính pane để Đúng. VS thêm phiên bản trong thuộc tính
Include
.<Reference Include="Name, Version=..."> <HintPath>...</HintPath> </Reference>
Thay đổi Version cụ trong Thuộc tính pane để False một lần nữa. VS thêm phần tử con
SpecificVersion
.<Reference Include="Name, Version=..."> <HintPath>...</HintPath> <SpecificVersion>False</SpecificVersion> </Reference>
Vì vậy, có vẻ như rằng các quy tắc là:
- Khi Version hiện diện trong Bao gồm thuộc tính và không có yếu tố
SpecificVersion
đứa trẻ, lắp ráp tập tin được cấu hình để được Phiên bản Cụ thể - Các
SpecificVersion
phần tử con chỉ được nối với giá trị Sai.
Một điều tôi vẫn không hiểu:
- Đối với dự án thử nghiệm mới của tôi, nếu tôi loại bỏ các tài liệu tham khảo tập tin và thêm nó trở lại một lần nữa, nó đi ngược về định dạng tại điểm 1, đó là mặc định.
- Đối với dự án hiện tại của tôi, nếu tôi xóa tham chiếu tệp và thêm lại tham chiếu, tôi lấy lại định dạng ở điểm 3. Mặc dù điều đó cũng có nghĩa là Phiên bản cụ thể không được sử dụng, tôi tự hỏi tại sao nó không quay lại định dạng tại điểm 1.
bạn có chắc không? trong VS2010 của tôi, 'SpecificVersion' là một phần tử con của phần tử' Reference'. Không có tác động đến ' ' khác mà các thuộc tính bị bỏ qua. –
Tôi đã làm một thử nghiệm. Phiên bản cụ thể ban đầu là Sai. Sau đó, tôi đã chỉnh sửa tệp csproj theo cách thủ công để xóa thông tin phiên bản. Và sau đó tôi đã thay đổi phiên bản cụ thể thành True. Tôi quan sát thấy rằng VS chèn thông tin phiên bản. Vì vậy, có vẻ như nó là bằng cách nào đó liên quan đến phiên bản cụ thể. Tuy nhiên, tôi tự hỏi tại sao VS không nhớ sự thay đổi cuối cùng của tôi. Ngay cả khi tôi đặt lại Phiên bản cụ thể thành False và xóa và thêm lại tham chiếu assembly, thông tin phiên bản vẫn được chèn vào. – intangible02
Tôi xác nhận các quan sát của bạn. Đã cập nhật câu trả lời cho phù hợp. – k3b