2013-03-20 14 views
41

Ich versuche, eine referenzierte DLL explizit in meinen lokalen Ordner zu kopieren, aber wenn ich zu den Eigenschaften für diese Referenz gehe, ist die Copy Local Eigenschaft ausgegraut/deaktiviert.Warum ist die Eigenschaft Lokale Kopie für meine Referenz deaktiviert?

Disabled Copy Local property

Normalerweise meine VB.NET-Projekte haben einen My Project Artikel direkt unter dem Projektnamen, die kann ich einen Doppelklick auf >> Referenzen und stellen Sie die Copy Local Eigenschaft, aber meine C# Konsolenanwendung scheint nicht, dieses zu haben .

My Project References

Habe ich vielleicht mein Projekt falsch konfiguriert? Jede Hilfe wird sehr geschätzt.

+11

Ändern Sie "Interp-Typen" auf "Falsch". – Peter

Antwort

67

Directly from this SO post:

Ihr Beitrag zu Hans Antwort deutet dies auf eine COM-Baugruppe ist und dass Sie Visual Studio 2010.

Dies bedeutet, dass die Montagereferenz wahrscheinlich mit den „Embed Interop hinzugefügt wurde Typen "Einstellung auf True gesetzt. Dies hat den Effekt, die COM-Assembly mit Ihrer Binärdatei zu verbinden, wodurch die Notwendigkeit entfällt, diese gemeinsam zu implementieren. Der folgende Link hat eine ausführlichere Erklärung • http://msdn.microsoft.com/en-us/library/dd409610.aspx • möchten Sie es bereitstellen dann müssen Sie Folgendes tun: • Klicken Sie auf die Referenz in der Registerkarte Referenzen • Hit F4, um das Eigenschaftenraster anzuzeigen • Set " embed Interop-Typen“auf false (dies wird ungray Copy Local) • Stellen Sie "Copy Local" auf true

Wenn Sie lokale kopieren möchten, können Sie Embed Interop Types-False für die Montage in Ihrem Fall setzen müssen, Microsoft.Office.Interop.Excel . Einbetten von Interop-Typen erleichtert die Bereitstellung für COM-Assemblierungen, da sie die Assemblys in Ihrer Assembly einbetten, sodass keine Interop-Assemblys mehr mit der Anwendung bereitgestellt werden müssen.

Verwandte Themen