Đây là dự án biểu mẫu cửa sổ theo VS2010.lỗi RG0000: Không thể tải tệp hoặc lắp ráp 'xxx' hoặc một trong các phụ thuộc của nó. Quyền truy cập bị từ chối
Đây là thông điệp mà tôi nhận được từ MSBuild:
error RG0000: Could not load file or assembly '3rdPartyAssemblyUsedByProject, Version=1.1.263.0, Culture=neutral, PublicKeyToken=687bce93d7ce902c' or one of its dependencies. Access is denied. Line 174 , position 5. [C:\xxx\src\BackOffice.csproj]
Đây là dòng lệnh dùng để mạc hội thảo này:
c:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/msbuild.exe BackOffice.csproj /p:PlatformTarget=x86
dòng 174 của file resx đó là do lỗi :
<data name="generalImages.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
...
</value>
</data>
generalImages là điều khiển ImageList với hình ảnh được sử dụng cho các nút trên biểu mẫu.
Điều này làm việc tốt trên máy tính của tôi, nhưng là một vấn đề trên máy chủ xây dựng của tôi. Máy trạm của tôi là Windows 7 64-bit, máy chủ xây dựng là Windows 2008 Server 64-bit. Máy chủ xây dựng có cài đặt windows 7.1 sdk.
Nếu tôi sử dụng msbuild từ khung công tác v3.5, quá trình biên dịch hoàn tất thành công. Tôi nhận được thông báo cảnh báo này không gây ra bất kỳ vấn đề gì tại thời điểm này: Tệp dự án có chứa ToolsVersion = "4.0", không được hỗ trợ bởi phiên bản MSBuild này. Xử lý dự án như thể nó đã có ToolsVersion = "3.5".
Toàn bộ lý do cho việc này là thực sự nhắm mục tiêu khung 4.0 và sử dụng những thứ như mặc định của phương pháp, không hoạt động khi nhắm mục tiêu 3.5.
Tôi đã tìm kiếm và tìm kiếm trên trang này. Tôi đã bắt gặp rất nhiều lượt truy cập liên quan đến các sự cố 32 bit/64 bit - nơi mà định dạng hình ảnh là vấn đề, nhưng đây không phải là vấn đề của tôi. Lỗi này cho biết "Truy cập bị từ chối". Tôi đã sử dụng fuslogvw để cố gắng tìm ra nơi truy cập bị từ chối đến từ - nhưng tôi không thấy rằng nó là, nhưng nó không thực sự tìm thấy bất kỳ lắp ráp. Việc lắp ráp không có trong GAC, nhưng trong một thư mục tiếp tuyến đến tệp dự án mà tham chiếu tệp dự án là.
Đây là nhật ký hợp:
* Assembly Binder Log Entry (8/30/2010 @ 1:44:48 PM) *
The operation failed. Bind result: hr = 0x80070002. The system cannot find the file specified.
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll Running under executable C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\ResGen.exe --- A detailed error log follows.
=== Pre-bind state information === LOG: User = domain\user LOG: DisplayName = 3rdPartyAssemblyUsedByProject, Version=1.1.263.0, Culture=neutral, PublicKeyToken=687bce93d7ce902c (Fully-specified) LOG: Appbase = file:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/ LOG: Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base = NULL LOG: AppName = NULL Calling assembly : System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089. === LOG: This bind starts in default load context. LOG: Using application configuration file: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\ResGen.exe.Config LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config. LOG: Post-policy reference: 3rdPartyAssemblyUsedByProject, Version=1.1.263.0, Culture=neutral, PublicKeyToken=687bce93d7ce902c LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE. LOG: All probing URLs attempted and failed.
Tại thời điểm này - Tôi bối rối. Không chắc chắn đi đâu tiếp theo. Lời khuyên nào sẽ được hoan nghênh.
Cort
Tôi đang chạy điều này theo cách thủ công từ dòng lệnh. Tôi đã xác minh rằng tôi có lắp ráp bên thứ 3, rằng người dùng tôi đã đăng nhập như đã kiểm soát toàn bộ trên tệp và là chủ sở hữu của tệp. – Cort
... Ngoài ra, như tôi đã cố gắng để hiển thị từ bao gồm cả nhật ký hợp nhất của tôi - lắp ráp là không bao giờ thực sự tìm thấy - đó là vị trí trong ../lib/3rdpartyassembly.dll từ vị trí của tập tin csproj. – Cort
Bạn có thể chỉ định vị trí của dll với/p: ReferencePath = ” \ ”. –