पर आधारित सी # नमूना प्रोजेक्ट चलाते समय निर्भरता समस्या मैं नमूना सी # प्रोजेक्ट में Google क्लाउड पबसब को एकीकृत करने पर काम कर रहा हूं, मैं सी # के साथ एक नौसिखिया हूं क्योंकि यह शायद मेरी कंपनी में ही काम करेगा सी # में लिखे गए गेम के साथ एकीकृत करने के कुछ आवश्यकताओं के कारण। मैं Google.Cloud.PubSub.V1.0.0-beta13 स्थापित करने के लिए इस्तेमाल किया और NuGet स्थापना सफलतापूर्वक चला गया, लेकिन जब मैं डॉक्स मैं निम्नलिखित त्रुटि मिलती है का उपयोग कर बनाई नमूना कोड को चलाने के लिए प्रयास करें:क्लाउड पबब
C:/Users/MyUser/RiderProjects/TestConsole/TestConsole/bin/Debug/TestConsole.exe
Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'Google.Apis.Auth, Version=1.21.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
at Google.Api.Gax.TaskExtensions.WaitWithUnwrappedExceptions(Task task) in C:\Users\jon\Test\Projects\gax-dotnet\releasebuild\src\Google.Api.Gax\TaskExtensions.cs:line 48
at Google.Api.Gax.Grpc.ChannelPool.GetChannel(ServiceEndpoint endpoint) in C:\Users\jon\Test\Projects\gax-dotnet\releasebuild\src\Google.Api.Gax.Grpc\ChannelPool.cs:line 92
at Google.Cloud.PubSub.V1.PublisherClient.Create(ServiceEndpoint endpoint, PublisherSettings settings) in C:\Users\jon\Test\Projects\google-cloud-dotnet\releasebuild\apis\Google.Cloud.PubSub.V1\Google.Cloud.PubSub.V1\PublisherClient.cs:line 558
at TestConsole.Program.CreateTopic(String projectId, String topicId) in C:\Users\MyUser\RiderProjects\TestConsole\TestConsole\Program.cs:line 11
at TestConsole.Program.Main(String[] args) in C:\Users\MyUser\RiderProjects\TestConsole\TestConsole\Program.cs:line 32
मैंने फिर Google.Apis.Auth को 1.21.0 पर डाउनग्रेड करने का प्रयास किया लेकिन फिर समस्या Google को "Google.Api.Gax, संस्करण = 1.0.1.0" लोड नहीं कर सका और फिर (यदि मैं निर्भरता को डाउनग्रेड करना जारी रखता हूं) Google पर। Protobuf 3.2 .0.0, फिर Google.Apis.Core 1.24.1 पर और फिर "Google.Apis.Auth 1.21.0 लोड नहीं हो सका" तो मुझे लगता है कि समस्या कहीं और है।
इस निर्भरता मुद्दे का क्या कारण बनता है? अगर मैं गिथब से Google Pubsub नमूना प्रोजेक्ट लोड करता हूं तो मुझे कोई समस्या नहीं मिलती है, भले ही packages.config मेरे प्रोजेक्ट में से एक जैसा है।
using Google.Cloud.PubSub.V1;
using Google.Protobuf;
namespace TestConsole
{
internal class Program
{
public static object CreateTopic(string projectId, string topicId)
{
var publisher = PublisherClient.Create();
var topicName = new TopicName(projectId, topicId);
var message = new PubsubMessage
{
// The data is any arbitrary ByteString. Here, we're using text.
Data = ByteString.CopyFromUtf8("Hello Cloud Pub/Sub!"),
// The attributes provide metadata in a string-to-string
// dictionary.
Attributes =
{
{ "description", "Simple text message" }
}
};
publisher.Publish(topicName, new[] { message });
return 0;
}
public static void Main(string[] args)
{
CreateTopic("MyProjectID", "MyProjectTopic");
}
}
}
और मेरे packages.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Google.Api.CommonProtos" version="1.0.0" targetFramework="net452" />
<package id="Google.Api.Gax" version="1.0.1" targetFramework="net452" />
<package id="Google.Api.Gax.Grpc" version="1.0.1" targetFramework="net452" />
<package id="Google.Apis" version="1.24.1" targetFramework="net452" />
<package id="Google.Apis.Auth" version="1.24.1" targetFramework="net452" />
<package id="Google.Apis.Core" version="1.24.1" targetFramework="net452" />
<package id="Google.Cloud.Iam.V1" version="1.0.0-beta09" targetFramework="net452" />
<package id="Google.Cloud.PubSub.V1" version="1.0.0-beta09" targetFramework="net452" />
<package id="Google.Protobuf" version="3.2.0" targetFramework="net452" />
<package id="Grpc.Auth" version="1.4.0" targetFramework="net452" />
<package id="Grpc.Core" version="1.4.0" targetFramework="net452" />
<package id="Newtonsoft.Json" version="10.0.2" targetFramework="net452" />
<package id="System.Interactive.Async" version="3.1.1" targetFramework="net452" />
<package id="System.Net.Http" version="4.3.1" targetFramework="net425" />
<package id="Zlib.Portable.Signed" version="1.11.0" targetFramework="net452" />
</packages>
मैं सवार 2017/01/01 का उपयोग अपने प्रोजेक्ट को चलाने के लिए और मैं .NET फ़्रेमवर्क 4.5 पर चला:
यहाँ मेरी Program.cs है। 2।
कृपया ध्यान दें मैं पहले से ही पता है कि यह एक बहुत समान प्रश्न पहले से ही अपने कम "प्रतिष्ठा" मैं यह टिप्पणी नहीं कर सकता (क्या आप जानते हैं की वजह से इस URL Unable to run Google Cloud PubSub in c#, DLL problems पर पोस्ट किया जाता है लेकिन, मैं आमतौर पर दस्तावेज और सवाल के लिए खोज पढ़ने की कोशिश पहले से ही उत्तर दिया है और डुप्लिकेट बनाने से बचने का प्रयास करें, यही कारण है कि मैंने इस साइट पर एक उच्च प्रतिष्ठा नहीं बनाई है) और जिस व्यक्ति ने सवाल उठाया वह बिना किसी जानकारी के अपने आप को हल कर लेता है। जवाब में लिखा है:
...if you manage all the dependencies via NuGet, I'd expect it to be okay - it should add assembly binding redirects for you.
जो यह मैं पहले से ही कर रहा हूँ मुझे लगता है।
हाय! क्या आपने लिंक किए गए प्रश्न के स्वीकृत उत्तर से अंतिम सुझाव की कोशिश की है? "[...] या एप्लिकेशन के साथ-साथ लाइब्रेरी में Google.Cloud.PubSub.V1 का संदर्भ जोड़ें, जिस बिंदु पर NuGet आपके लिए सभी निर्भरता प्रबंधन करेगा।" –
मैंने देखा एक और विवरण है कि आप प्रश्न में '' 'बीटा 13''' का उल्लेख करते हैं, लेकिन' '' beta09''' '' 'packages.config''' फाइल में संदर्भित है। क्या कोई संस्करण कहीं मिस्चैच हो सकता है? –
हाय @ मार्सेलोरोमानी मैंने इसे विभिन्न संस्करणों के साथ करने की कोशिश की, इसलिए विसंगति शायद चीजों को संभालने की कोशिश करने के विभिन्न तरीकों से बचे हुए थे। इसके अलावा मैंने ऐप में पहले से ही संदर्भ जोड़ा है लेकिन मुझे नहीं पता कि लाइब्रेरी में इसे जोड़ने का क्या अर्थ है। –